我想將多個.o文件合併爲一個.o文件,同時合併一些部分。用ld合併部分
如果我執行
ld -r first.o second.o -o result.o
然後適當合併的目標文件,但我也需要合併各種.text段。當鏈接共享對象時,ld中的默認鏈接描述文件可以使用此節合併功能,但在使用-r時,我沒有設法強制使用自定義鏈接描述文件。 ld似乎忽略了我嘗試過的任何腳本。我試圖修改默認的鏈接腳本,取而代之的是這個
.text :
{
*(.text.unlikely .text.*_unlikely)
*(.text.exit .text.exit.*)
*(.text.startup .text.startup.*)
*(.text.hot .text.hot.*)
*(.text .stub .text.* .gnu.linkonce.t.*)
/* .gnu.warning sections are handled specially by elf32.em. */
*(.gnu.warning)
} =0x90909090
.text段塊如何合併的目標文件同時還採用LD合併.text段?
你是如何得出(可能不正確)的結論:'ld -r' * * not * merge'.text' sections?另外,你在哪個平臺上使用了哪個版本的'ld'? –
我使用以下ld版本:GNU ld(GNU Binutils)2.20.0.20100122-0.7.9。嘗試更新的版本以及相同的結果。 我不是在談論ld沒有合併不同目標文件的'.text'部分,而是不合並目標文件的_all_'.text *'部分,比如'.text','.text._ZN13somenamespace3FooD1Ev' ,'.text._ZN13somenamespace3FooD0Ev','.text._ZNSt8_Rb_treeIPN13somenamespace3BarES2_St9_IdentityIS2_ENS1_6isLessESaIS2_EE8_M_eraseEPSt13_Rb_tree_nodeIS2_E'等。 –