5

Я пытаюсь скомпилировать программы под Solaris в моем домашнем каталоге.
У меня был опыт простых установок, которые работают только с

   $> CD src
   $> ./configure --prefix=/home/peter
   $> make
   $> make install

Но с более вовлеченными программами, с зависимостями от специальных библиотек, как мне заставить систему искать их в моем домашнем каталоге? и как мне собрать их в мой домашний каталог?

2 ответа2

3

Мне приходится делать такие вещи, когда я кросс-компилирую приложения. Если ./configure поддерживает это, вы можете проверить с помощью --help, вы можете сделать что-то вроде следующего

./configure --extra-ldflags=-L/root/Installs/ffmpeg/forWin/usr/lib --extra-cflags=-I/root/Installs/ffmpeg/forWin/usr/include

Есть одна запись для библиотек, и одна для включений, однако, всегда есть старый способ просто добавить ее перед настройкой или созданием

LDFLAGS='-L/root/Installs/ffmpeg/forWin/usr/lib' CFLAGS='-I/root/Installs/ffmpeg/forWin/usr/include' ./configure
LDFLAGS='-L/root/Installs/ffmpeg/forWin/usr/lib' CFLAGS='-I/root/Installs/ffmpeg/forWin/usr/include' make

Для make я думаю, что они могут быть указаны до или после, однако не указывайте меня на этом.

0

Это зависит.

Если вы создаете программное обеспечение, которое использует configure , большинство скриптов configure позволяют вам указывать пути к сторонним библиотекам. configure --help и найдите --with-feature =/path/to/software.

Как уже упоминалось в других ответах, configure и другие сценарии обычно обращают внимание на переменные окружения CFLAGS LDFLAGS и LIBS . Вы можете установить CFLAGS с помощью -I/include/paths и -L/library/paths, и это может помочь.

В худшем случае вам может понадобиться отредактировать Make-файлы, чтобы сбросить эти пути.

Если вы хотите, чтобы программное обеспечение находилось где-то в другом месте, сценарии configure как правило, имеют аргумент --prefix =, указывающий каталог установки. Или вам может понадобиться отредактировать Makefile.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .