как заставить PKG_CHECK_MODULES работать со статическими библиотеками?

У меня в configure.ac:

PKG_CHECK_MODULES([LIBXML2], [libxml-2.0 >= 2.6.26])

и я использую $(LIBXML2_LIBS) в Makefile.am.

Это работает, если libxml2 компонуется динамически, но теперь, если статическая компоновка не работает из-за отсутствия -lz.

Обходной путь для пользователя - установить

PKG_CONFIG="pkg-config --static"

но я бы предпочел улучшить сценарий настройки таким образом, чтобы этот обходной путь не был необходим.

Конечно, я не знаю, будет ли libxml2 статическим или DSO, поэтому я не могу просто хардкодить флаг --static. У кого-нибудь есть макрос для этого?


person marcin    schedule 09.01.2014    source источник


Ответы (2)


Обновление: последний комментарий в приведенном выше отчете об ошибке показывает, что они устранены проблему, добавив новый макрос PKG_CHECK_MODULES_STATIC. См. также эту фиксацию.

Этот похоже, работает в версиях pkg-config > 0.29.

person Kevin W Matthews    schedule 05.12.2019

С использованием:

PKG_CONFIG="pkg-config --static"

похоже, это можно сделать в соответствии с отчетом об ошибке pkg-config.

person ldav1s    schedule 09.01.2014
comment
Это обходной путь для пользователя, упомянутого в вопросе, а не исправление для configure.ac. - person marcin; 10.01.2014
comment
К сожалению, исправление для configure.ac, по-видимому, (в комментарии 3 отчета об ошибке) не похоже на хорошее решение. - person ldav1s; 10.01.2014