Linux下的lds连接脚本详解,Linux链接脚本学习--lds
許多腳本是相當簡單的.
可能最簡單的腳本只含有一個命令:’SECTIONS’.
你可以使用’SECTIONS’來描述輸出文件的內存布局.
‘SECTIONS’是一個功能很強大的命令.
假設你的程序只有代碼段,初始化過的數據段,和未初始化過的數據段.這些會存在于’.text’,’data’,’bss’段中.
對于這個例子,假設代碼應該被載入到地址0x1000處,而數據應該從0x8000000開始,如下是實現這個功能的腳本:
SECTIONS
{
.=0x1000;
.text:{*(.text)}
.=0x8000000;
.data:{*(.data)}
.bss:{*(.bss)}
}
具體分析:
關鍵字’SECTIONS’開始于這個配置.后面跟有一串放在花括號中的符號賦值和輸出端描述的內容.
第一行是對一個特殊的符號’.’賦值,這是一個定位標識器.如果你沒有以其他的方式制定輸出段的地址,那地址值就會被設為定位標識器的現有值,即0x1000.
第二行定義一個輸出段,’.text’.冒號’:’是語法需要,現在可以被忽略.段后面的花括號中,應該列出所有應該放入這個輸出段中的輸入端的名字.’*’是通配符,匹配所有文件名.即將所有輸入文件中的.text段都保存在此段中.
余下的是.data和.bss段,同理,鏈接器會把所有.data段從地址0x8000000開始處放置.
最后,定位標識器的值變為0x8000000加上所有.data段的地址.此時鏈接器把所有.bss放在此處開始的地址.
總結
以上是生活随笔為你收集整理的Linux下的lds连接脚本详解,Linux链接脚本学习--lds的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: QQ升到9个太阳需要58年左右时间!
- 下一篇: 中文汉字注音,汉字转拼音,支持图片识别文