LINUX.ORG.RU

Как узнать зависимости библиотеки и слинковаться с ними? (autoconf + automake)


0

3

К примеру, моя программа зависит от libfoo, а в свою очередь libfoo на целевой системе собрано с libanalslave о существовании которого я даже не подозреваю. Вопрос - как мне в процессе сборки узнать это и передать -lanalslave линкеру? Пока использовал AC_CHECK_LIB с кучей библиотек, но это какой-то Сизифов труд - перебирать все возможные либы для libfoo. По идее, pkg-config должен помогать, но он поможет только в случае использования репозитория, а если либа была собрана локально - нет.

Вопрос - как мне в процессе сборки узнать это и передать -lanalslave линкеру?

А зачем? Разве ОС не сделает это за тебя при запуске бинарника?

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

А зачем? Разве ОС не сделает это за тебя при запуске бинарника?

Что за ололо? Нужные библиотеки подгружает libdl, а не ОС.

UVV ★★★★★
()

если программа зависит от libfoo, то указывай в зависимостях только libfoo, а остальное - это проблемы libfoo и её системы сборки

узнать это и передать -lanalslave линкеру?

Зачем? Если libfoo у тебя уже есть в собранном виде, то её зависимости уже прилинкованы к ней, статически или динамически

Harald ★★★★★
()
Ответ на: комментарий от UVV

Что за ололо? Нужные библиотеки подгружает libdl, а не ОС.

Во-первых, не ололо, а недоумение. А во-вторых, libdl — часть ОС, так что всё верно.

i-rinat ★★★★★
()
Последнее исправление: i-rinat (всего исправлений: 1)

По идее, pkg-config должен помогать, но он поможет только в случае использования репозитория, а если либа была собрана локально - нет.

это пуркуа? у нормальных pkg-config-ов есть Libs.private, который формируется, ну или должен формироваться, на целевой системе в стадии ./configure. и если твоя гипотетическая libfoo сделана правильно, -lanalslave будет прописан в Libs.private.

более того, PKG_CHECK_MODULES позволяет руками переопределить FOO_CFLAGS и FOO_LIBS через переменные окружения, что, в принципе, тоже одно из решений подобной проблемы

ananas ★★★★★
()
Ответ на: комментарий от i-rinat

Определись с понятием, что такое ОС, ололо.

UVV ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.