У меня есть файл .elf, связанный с несколькими файлами .a, .so и .lib. Теперь я хочу добавить еще один .lib к тому же эльфу. Есть ли способ добиться этого?

0
Ankur Sharma 10 Фев 2021 в 16:28

1 ответ

Лучший ответ

У меня есть файл .elf

Это утверждение бессмысленно. ELF-файлы бывают разных типов: ET_DYN (общая библиотека или исполняемый файл PIE), ET_EXEC (исполняемый файл), ET_REL (перемещаемый объектный файл), ET_CORE (дамп ядра) .

Вы можете выяснить, какой у вас тип .elf, запустив file foo.elf.

Первые два считаются «окончательными», дальнейшая привязка к ним невозможна. И, очевидно, вы также не можете повторно связать файл core.

Теперь я хочу добавить еще один .lib к тому же эльфу.

Похоже, у вас есть исполняемый файл, который вы хотите расширить.

Это невозможно .

Обновление:

Могу ли я добавить .lib в перемещаемый объектный файл?

Да: так же, как и любые другие библиотеки. Если исходная команда была:

xyz-link -o final.elf -whole-archive foo.lib

Тогда новая команда будет:

xyz-link -o final.elf -whole-archive foo.lib bar.lib
1
Employed Russian 10 Фев 2021 в 15:44