LINUX.ORG.RU

Как правильно указать путь до библиотеки?

 


0

1

Питаюсь собрать одну программу, которая зависит от библиотеки, которая зависит от другой библиотеки. :'(

Ситуация. Надо задать параметры/опции для скрипта configure так, чтобы он искал библиотеку по определенному пути. Я пробовал это делать через задание параметров "-I" в CFLAGS и "-L" в LDFLAGS.

Но скрипт ./configure всё равно говорит:

checking for gmp.h... no
configure: error: gmp.h header not found

Вопрос: А как правильно указать путь до нужной библиотеки?

★★★★

Последнее исправление: pathfinder (всего исправлений: 1)

Если сборочная система использует pkg-config, чаще всего достаточно бывает указать правильный PKG_CONFIG_PATH, чтобы конфигурялка нашла *.pc файлы.

wandrien ★★
()
Последнее исправление: wandrien (всего исправлений: 1)
Ответ на: комментарий от wandrien

Вот команда:

git clone git://repo.or.cz/isl.git

Но меня интересует проблема в целом, а не с конкретной библиотекой.

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

Нет, это обычный autotools.

autotools просто фреймворк для создания конфигурялки. Как написал конфигурялку конкретный разработчик, зависит от него. Обычно там вызывают pkg-config под капотом.

wandrien ★★
()

Я уже намучался со сборкой всякого разными кросскомпиляторами. Хочу найти универсальный способ, для случая, когда это обычный autotools.

pathfinder ★★★★
() автор топика
Ответ на: комментарий от wandrien

autotools просто фреймворк для создания конфигурялки.

Это да, но я надеялся на какие-нибудь общие правила.

pathfinder ★★★★
() автор топика
Ответ на: комментарий от NAY_GIGGER

А у вас все dev пакеты установлены?

Мне dev пакеты не нужны. Мне нужно всё собрать конкретным компилятором. Библиотека gmp уже собрана, и соответствующий gmp.h имеется.

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

Там написано в справке ./configure --help:

   --with-gmp-prefix=DIR   Prefix of gmp installation

Но вообще если у тебя не найден заголовочный файл gmp.h из стандартного набора пакетов ОС, то либо что-то не так с ОС, либо просто поставь нужный пакет.

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

Библиотека gmp уже собрана, и соответствующий gmp.h имеется.

Так бы сразу и говорил, что нужен не системный gmp. Ну тогда --with-gmp-prefix, как и было сказано.

wandrien ★★
()

Вопрос: А как правильно указать путь до нужной библиотеки?

а где gmp.h сейчас находится?

waker ★★★★★
()

там используется макрос AX_DETECT_GMP

https://repo.or.cz/isl.git/blob/HEAD:/m4/ax_detect_gmp.m4

я не очень внимательно вчитывался, но похоже оно ожидает что ты будешь использовать параметр для configure --with_gmp_prefix (или --with-gmp-prefix)

waker ★★★★★
()
Последнее исправление: waker (всего исправлений: 1)
Ответ на: комментарий от wandrien

блин. надо было мне сначала тред прочитать, прежде чем макросы читать LOL

waker ★★★★★
()
Ответ на: комментарий от pathfinder
cd gmp-6.2.1
./configure --prefix=/builds/gmp
make -j`nproc` && make install
cd ../isl
./configure --prefix=/builds/isl --with-gmp-prefix=/builds/gmp
make -j`nproc` && make install

УМВР

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

а где gmp.h сейчас находится?

Когда собирал gmp, указал prefix=«/opt/local/gmp-XXX», где ХХХ является неким идентификатором, определяющий компилятор, которым собиралось.

Соответственно gmp.h сейчас лежит в «/opt/local/gmp-XXX/include».

pathfinder ★★★★
() автор топика
Ответ на: комментарий от waker

Да, говорил. И это не помогает.

Ох, ладно, разберусь. Просто думал, есть какой-то общий подход для случая autotools.

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

общий подход — открыть config.log в случае неудачи, проскролить от конца к началу, пока не найдётся конкретное место, где происходит ошибка

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

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

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

общего нет. зависит от того как автор софта написал configure.ac. нужно всегда читать –help, там написаны все подходы.

если это не помогает – читай config.log, там написано конкретно какие команды запускались для поиска gmp.h, и почему он не нашелся.

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

Я уже понял. :(

У фрименов из дюны глаза от контакта со спайсом принимают голубой цвет. А у нас глаза краснеют.

pathfinder ★★★★
() автор топика
Последнее исправление: pathfinder (всего исправлений: 1)
Ответ на: комментарий от pathfinder

Мне удалось собрать. Удалил ".so" библиотеки gmp, оставил только ".a". И всё собралось. Да здравствует статическая линковка!

Всем спасибо.

pathfinder ★★★★
() автор топика

Звбанься, дебил.

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