Как бороться с autoconf? (статические библиотеки)

Модератор: Модераторы разделов

Ответить
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20794
Статус: nulla salus bello
ОС: Debian GNU/Linux

Как бороться с autoconf?

Сообщение Bizdelnick »

Уже который раз наступаю на одни и те же грабли. Нужно собрать какую-то программу статически. Собираю некую её зависимость (пусть это будет readline) в статическую библиотеку, предварительно собрав зависимость зависимости (ncurses), разделяемых библиотек не собираю (а на фига они мне?). Запускаю ./configure нужной программы и получаю что-то вроде

./configure

checking for readline/readline.h... yes checking for readline in -lreadline... no checking for library containing tgetent... no checking for rl_initialize in -lreadline... no configure: WARNING: readline library not found configure: error: Could not find a working readline library (see config.log for details).

Лезу в config.log и вижу:

Код: Выделить всё

configure:14915: checking for readline in -lreadline
configure:14940: gcc -o conftest -g -pipe -Wno-long-long  -I/home/user/build/deps/include -L/home/user/build/deps/lib conftest.c -lreadline   >&5
/home/user/build/deps/lib/libreadline.a(display.o): In function `rl_redisplay':
/home/user/build/readline-6.3/display.c:1123: undefined reference to `tputs'
<тут ещё до фига аналогичных ошибок>
collect2: error: ld returned 1 exit status

То есть долбаный autoconf для проверки функциональности библиотеки пытается её слинковать без учёта зависимостей. (Здесь должна быть куча матерных слов в адрес того, кто вообще придумал такие проверки, но я их опущу.)
Вопрос: как с этим бороться? То есть понятно, что есть разные способы типа игнорирования проверки путём передачи переменной с предопределённым её результатом (понятно, положительным). Но как бы вы решали данную проблему? Вдруг есть более элегантный способ (например как-то заставить configure использовать для сборки проверок libtool)?
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
IMB
Сообщения: 2561
ОС: Debian

Re: Как бороться с autoconf?

Сообщение IMB »

LDFLAGS=/full/path/static_library.a
Или собирать без поддержки этого функционала.
Спасибо сказали:
Ответить