Я пытаюсь использовать параметр --whole-archive
, но, похоже, он не работает с -Xlinker
. Как я могу добавить эту опцию, используя - Xlinker
?
Вот вся история:
Я пишу основную программу A и несколько общих библиотек B1, B2 и т. Д. Основная программа будет использовать dlopen для загрузки этих общих библиотек во время выполнения. Я компилирую основную программу A, связывая ВСЕ возможные статические библиотеки, используемые основной программой (S1, S2 ... и т. Д.) Или общими библиотеками (S3, S4 ... и т. Д.). Затем я собираю общую библиотеку без статической библиотеки.
При вызове dlopen сбой программы из-за неопределенного символа в разделяемой библиотеке. этот символ существует в статической библиотеке S3, но я не могу найти его в таблице символов основной программы.
Поэтому я добавляю опцию --whole-archive при компиляции основной программы, но символ все еще не существует в окончательном двоичном файле. как добавить этот символ в основную программу, если он не используется напрямую в основной программе.