Можно ли установить статические библиотеки из apt в 18.04 x86_64?

Я пытаюсь построить проект, который зависит от двоичных распределенных статических библиотек.

Компоновщик жалуется, что не может найти ini_config функций, среди прочего:

config_params.c:(.text+0x16f): undefined reference to  `ini_get_config_valueobj'

Он находит динамические библиотеки, но не статическую версию:

attempt to open /usr/lib/gcc/x86_64-linux-gnu/7/libini_config.a failed
attempt to open /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/libini_config.so succeeded

присутствует на Debian Strech. Есть ли способ получить их на Ubuntu?

1
задан 5 July 2018 в 18:03

1 ответ

Все пакеты, похоже, устанавливают свои статические библиотеки. Их можно найти в /usr/lib/x86_64-linux-gnu/.

По-видимому, компоновщик первым выбирает динамические библиотеки при использовании -lsomelib. Чтобы переопределить это, вы можете использовать -l:somelib.a, тогда оно будет соответствовать только точному имени файла somelib.a.

Чтобы отладить фазу поиска в библиотеке, вы можете добавить -Wl,--versbose к вашим LDFLAGS, gcc отобразит каждый путь, который он пытается для ваших опций -lXXX.

Имейте в виду, что архивы проверяются только один раз, как указано в этого ответа , если некоторые символы все еще не найдены, возможно, вам придется изменить порядок параметров.

0
ответ дан 5 July 2018 в 18:03

Другие вопросы по тегам:

Похожие вопросы: