Я связал некоторые текстовые файлы с помощью этой команды:
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
У меня есть другой файл resources2.o, полученный от другой команды ld, но он имеет другое содержимое:
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 resources1.o resources2.o
Когда я связываю libSum.a с моей программой на C и пытаюсь использовать эти тексты, я не могу, потому что они используют одни и те же смещения памяти. Таким образом, binary__textos1_texto1_txt_start имеет то же направление, что и _binary_texto4_txt_start (0X00000000).
Как я могу объединить оба файла ресурсов в одну библиотеку .a, избегая перекрытия смещения памяти? Спасибо