Как gcc в Solaris находит свои библиотеки?
Вопрос
Я пытаюсь установить «quadrupel», библиотеку, основанную на ffmpeg в Solaris x86.
Мне удалось собрать ffmpeg, и его библиотеки находятся в /opt/gnu/lib, а включения находятся в /opt/gnu/include, но когда я пытаюсь собрать Quadrupel, он не может найти заголовки ffmpeg.
Какие флаги/конфигурация необходимы для включения этих двух каталогов в правильные пути поиска библиотек и включений?Я не большой хакер Makefile.
Решение
Вы можете переопределить путь, установив переменную среды LD_LIBRARY_PATH.Однако я бы предложил также изменить системные пути, чтобы вам не приходилось менять путь к библиотеке для всех пользователей.Это можно сделать с помощью crel.
crle -l -c /var/ld/ld.config -l /usr/lib:/usr/local/lib:/opt/gnu/lib
Для включения просто добавьте -I/opt/gnu/include в переменную CFLAGS.
Другие советы
Я считаю, что вам нужно добавить в Makefile следующее:
CFLAGS += -I/opt/gnu/include
LDFLAGS += -L/opt/gnu/lib -R/opt/gnu/lib
Аргумент -I сообщает gcc, где найти включаемые файлы.Флаг -L сообщает ld, где найти библиотеки во время компоновки.Флаг -R записывает /opt/gnu/lib в путь поиска библиотек в двоичном файле Quadrupel, чтобы он мог найти свои библиотеки при запуске.