工具鏈在LFS中的應用

2021-09-26 21:50:20 字數 602 閱讀 5872

主系統中有linux核心,源工具鏈、輔助命令及庫。編譯工具和輔助命令都依賴glibc。考慮到主系統的binutils比實際需要的版本低,低版本的binutils可能缺少需要的某些功能,所以首先生成預編譯工具。利用預編譯工具編譯生成臨時系統,把臨時系統作為過渡,就可以使用chroot命令切換到制定目錄,再利用臨時系統提供的編譯環境,製作最終的目標系統。

vim依賴ncurses和glibc,ncurses依賴glibc,最後glibc呼叫核心提供的函式功能。編譯相關的命令會依賴glibc,其他共享庫(如ncurses)也會依賴glibc。依賴關係就決定了軟體包的編譯安裝順序:

glibc->ncurses->vim

調整工具鏈實質就是用新的glibc替換掉舊的glibc。關鍵就是修改ld命令的鏈結,使工具鏈鏈結到新的glibc函式庫。製作linux系統,要保證系統的純淨性,關鍵點就是調整工具鏈修改ld的鏈結。實現方式類似c語言裡中陣列的複製移動過程。

Go 中的工具鏈

編譯並不僅僅是執行 go build 命令,還有一些須額外注意的內容。如習慣使用 gdb 這類偵錯程式,建議編譯時新增 gcflags n l 引數阻止優化和內聯,否則除錯時會有各種 找不到 的情況。package main func test x int func main go build gc...

在實現持久層中工具的應用 6

在大型的資訊系統的模型設計中,表結構往往根據特定的規則,有一些有特別意義的字首在表名和欄位名中使用。比如象下面結構中 字首t1,在實際的使用中可以代表某個模組的名稱,這樣相應的pojo就應該放在對應的模組中,比如這裡的t1對應的是模組common,這樣生成的staff物件就應該在mytest.hib...

交叉編譯工具鏈在linux環境中的安裝方法

1 tar xjf arm linux gcc 4.3.2.tar.bz2 c usr 2 設定環境變數 echo path 得到原先的環境變數,將之前的工具鏈環境刪除 export path 在原來的基礎上新增相關的工具鏈目錄 例 usr local arm 4.3.2 bin home book...