Как добавить пути include и lib для настройки/создания цикла?



Мне нужно место для установки библиотек в поле linux, к которому у меня нет доступа su. Я использую ~/local [/bin,/lib, / include], но я не знаю, как я могу сказать ./ настроить поиск библиотек там (в частности, я пытаюсь скомпилировать emacs, который нуждается в libgif, который не входит в мой дистрибутив).



Я пробовал добавлять



export PATH=$PATH:~/local/bin
export LD_LIBRARY_PATH=~/local/lib
export C_INCLUDE_PATH=~/local/include
export CPLUS_INCLUDE_PATH=~/local/include


to .bashrc, но это, кажется, не работает.

757   3  

3 ответов:

вы хотите конфиг.файл сайта. Попробуйте:

$ mkdir -p ~/local/share
$ cat << EOF > ~/local/share/config.site
CPPFLAGS=-I$HOME/local/include
LDFLAGS=-L$HOME/local/lib
...
EOF

всякий раз, когда вы вызываете сгенерированный autoconf сценарий настройки с --prefix=$HOME/local, конфигурация.сайт будет прочитан и все задания будут сделаны за вас. CPPFLAGS и LDFLAGS должны быть все, что вам нужно, но вы можете сделать любые другие желаемые назначения, а также (следовательно ... в приведенном выше примере). Обратите внимание, что я флаги принадлежат добейтесь того, и не в уровне, а я предназначен для предварительной обработки и не компилятор.

установить с CFLAGS и LDFLAGS, когда вы запустите Make:

$ LDFLAGS="-L/home/me/local/lib" CFLAGS="-I/home/me/local/include" make

Если вы не хотите делать это миллион раз, экспортируйте их в свой .bashrc (или свой эквивалент). Также установите LD_LIBRARY_PATH для включения /home / me / local / lib:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/me/local/lib

это заняло некоторое время, чтобы получить право. У меня была эта проблема при кросс-компиляции в Ubuntu для цели ARM. Я решил ее с помощью:

PATH=$PATH:/ccpath/bin CC=ccname-gcc AR=ccname-ar LD=ccname-ld CPPFLAGS="-nostdinc -I/ccrootfs/usr/include ..." LDFLAGS=-L/ccrootfs/usr/lib ./autogen.sh --build=`config.guess` --host=armv5tejl-unknown-linux-gnueabihf

обратите внимание CFLAGS не используется с autogen.sh/configure, используя его дал мне ошибку:"configure: error: C компилятор не может создавать исполняемые файлы". В среде сборки я использовал autogen.sh сценарий был предоставлен, если у вас нет autogen.sh сценарий замены ./autogen.sh С./ настройка В приведенной выше команде. Я запустил конфиг.думаю на целевая система для получения параметра --host.

после успешного запуска autogen.sh/configure, скомпилировать с помощью:

PATH=$PATH:/ccpath/bin CC=ccname-gcc AR=ccname-ar LD=ccname-ld CPPFLAGS="-nostdinc -I/ccrootfs/usr/include ..." LDFLAGS=-L/ccrootfs/usr/lib CFLAGS="-march=... -mcpu=... etc." make

CFLAGS, которые я выбрал для использования, были: "- march=armv5te-fno-tree-vectorize-mthumb-interwork-mcpu=arm926ej-s". Потребуется некоторое время, чтобы правильно настроить все каталоги include: вы можете захотеть, чтобы некоторые из них указывали на ваш кросс-компилятор, а некоторые указывали на вашу корневую файловую систему, и, вероятно, возникнут некоторые конфликты.

Я уверен, что это не идеальный ответ. И я все еще вижу некоторые каталоги, указывающие на / и не /ccrootfs в Makefiles. Хотелось бы знать, как это исправить. Надеюсь, это кому-то поможет.

Comments

    Ничего не найдено.