このコマンドでいくつかのテキストファイルをリンクしました:
ld -r -b binary -o resources1.o * .txt
そして、私はこのコンテンツを含むファイルresources.oを取得します:
nmリソース1.o
00000018 D _binary_texto4_txt_end
00000018 A _binary_texto4_txt_size
00000000 D _binary_texto4_txt_start
00000031 D _binary_texto5_txt_end
00000019 A _binary_texto5_txt_size
00000018 D _binary_texto5_txt_start
0000004a D _binary_texto6_txt_end
00000019 A _binary_texto6_txt_size
00000031 D _binary_texto6_txt_start
別のldコマンドから来る他のresources2.oファイルがありますが、内容が異なります。
00000018 D _binary___textos1_texto1_txt_end
00000018 A _binary___textos1_texto1_txt_size
00000000 D _binary___textos1_texto1_txt_start
00000031 D _binary___textos1_texto2_txt_end
00000019 A _binary___textos1_texto2_txt_size
00000018 D _binary___textos1_texto2_txt_start
0000004a D _binary___textos1_texto3_txt_end
00000019 A _binary___textos1_texto3_txt_size
00000031 D _binary___textos1_texto3_txt_start
2つのresources.oファイルを1つのlibSum.aファイルに結合したいと思います。だから私はこのコマンドを使用します:
ar rvs libSum.a resources1.o resources2.o
libSum.aをCプログラムにリンクしてそれらのテキストを使おうとすると、同じメモリオフセットを共有しているために使用できません。したがって、バイナリ__textos1_texto1_txt_startは、_binary_texto4_txt_start(0X00000000)と同じ方向になります。
両方のリソースファイルを1つの.alibに結合して、メモリオフセットの重複を回避するにはどうすればよいですか?ありがとう