ld 鏈結相關知識

2021-10-03 20:47:54 字數 688 閱讀 5280

1 .bss 不儲存在 bin檔案 bin檔案 bin檔案 bin檔案 bin檔案(重要的事情說四遍)

2 arm-linux-ld -ttext 0 -tdata 0x800

好像也可以設定 -tbss

那麼生成檔案燒錄到jz2440 text位址為0 data位址為0x800 (因為jz2440 不管是nor啟動還是nand啟動都是從0開始執行的)

-ttext -tdata 是確定 text 跟 data 的燒錄位址的。

3 . = align(4);

指示編譯器將接下來的**進行4位元組對齊編譯,也就是在分配位址時,以4的整數倍分配。

為啥需要. = align(4) 這個東西呢?

儲存空間讀寫以四個位元組為單位,比較快。

可能 某段資料不是 四位元組結束,那麼下一段資料不能一四位元組開始,那麼可能會影響到資料

所以前面 每段資料前面都加乙個 . = align(4);

比如這樣

sections.=

align(4

);.rodata :.=

align(4

);.data :.=

align(4

);__bss_start =.;

.bss :

_end =.;

}

Linux鏈結相關知識

鏈結 這個步驟在什麼時候執行 乙個c源程式到可執行檔案的過程 乙個c源程式可以被執行,得經過下面四個步驟 編譯,驅動程式執行編譯器 cc1 將main.i翻譯成乙個ascii組合語言檔案main.s 驅動程式執行彙編器 as 將main.s翻譯成乙個可重定位目標檔案main.o檔案。執行聯結器ld,...

ld命令和鏈結庫

ld命令和鏈結庫 1 靜態連線庫的名稱是有約定的,也就是必須的 以lib開頭,以 a 作為副檔名。所以不可能有名為my.a的靜態庫。如 你的庫可以起名為 libmy.a so 應該是動態連線庫 2 新增靜態連線庫 如果,你生成的libmy.a在 usr local lib裡面 gcc o myexe...

ld 動態鏈結庫配置

一 ldconfig ldconfig是乙個動態鏈結庫管理命令,為了讓動態鏈結庫為系統所共享,還需執行動態鏈結庫的管理命令 ldconfig。ldconfig 命令的用途,主要是在預設搜尋目錄 lib和 usr lib 以及動態庫配置檔案 etc ld.so.conf內所列的目錄下,搜尋出可共享的動...