В проекте, над которым я работаю, используется нестандартная система распространения, которая внутри загружает и компилирует библиотеки зависимостей. Этот крок запускает для каждой библиотеки скрипт configure
, задающий в качестве префикса внутренний каталог системы компиляции. Затем он запускает make
и make install
, затем проверяет содержимое, выполняя поиск в каталоге установки с файлом lib/<mylib>.a
. Этот последний шаг терпит неудачу.
Пытаясь понять, что происходит, я сам собрал пару случайных библиотек, в том числе одну, автором которой я являюсь. Я заметил, что в моем дистрибутиве (openSUSE, 64 бит) путь установки заполнен не /lib
, а вместо этого /lib64
.
Понятно, что это настройка дистрибутива, и я почти уверен, что эта настройка касается конфигурации автоинструментов, поставляемых с дистрибутивом.
Есть ли способ изменить это поведение или, как вариант, прочитать эту информацию из системы (чтобы я мог пропатчить упомянутый выше черепок)?
Спасибо за вашу помощь
Обновление: я узнал о флаге --libdir
в configure
, поэтому думаю, что смогу решить свою проблему. Тем не менее, я хотел бы знать, есть ли способ узнать эту деталь, каким-либо образом запросив дистрибутив (например, прочитав какой-нибудь файл конфигурации).
configure
. Я предполагаю, что система компиляции на основеconfigure
может считывать некоторую конфигурацию из операционной системы (например, какой-то файл в/etc/
), чтобы определить, где ОС должна найти библиотеки. - person Dacav   schedule 13.02.2012/etc/
: это был просто способ сказать, что это системно-зависимое поведение. Пропатченная версия autoconf более вероятна, так как поведение касается не одного скрипта configure, а в основном каждой библиотеки, которую я компилирую вручную. - person Dacav   schedule 13.02.2012