Скажите autoconf, что (только) одна библиотека должна быть статически связана

Я строю программу на C++ с использованием automake. Он использует много библиотек, которые я хочу динамически связать.

Но есть одна библиотека, которую я хочу связать статически. Я не собираю эту библиотеку, у меня есть файл.a, предоставленный третьей стороной, который я хочу использовать.

Есть ли простой способ, в configure.ac или Makefile.am, указать, что эта библиотека должна быть статически связана, оставляя нормальное поведение динамического связывания неизменным для всех других библиотек?

2 ответа

Решение

Я нашел ответ.

Это работает путем добавления пути к библиотеке в Makefile.am:

programname_LDADD = /usr/lib/libneeded.a

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

Решение о статической или динамической связи - это решение, которое должен принять пользователь, а не сопровождающий, поэтому нет смысла пытаться принять это решение в метафайлах autotool. Если пользователь хочет связать статически, самое надежное, что нужно сделать, это убедиться, что в каталогах, которые ищет компоновщик, нет динамической библиотеки.

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