我用这个命令链接了一些文本文件:
ld -r -b 二进制 -o resources1.o *.txt
我得到一个包含以下内容的文件resources.o:
纳米资源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
我想将这两个 resources.o 文件合并到一个 libSum.a 文件中。所以我使用这个命令:
ar rvs libSum.a 资源1.o 资源2.o
当我将 libSum.a 链接到我的 C 程序并尝试使用这些文本时,我不能因为它们共享相同的内存偏移量。所以二进制__textos1_texto1_txt_start 与 _binary_texto4_txt_start (0X00000000) 具有相同的方向。
如何将两个资源文件合并到一个 .a lib 中以避免内存偏移重叠?谢谢