Как добавить пути 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, но это, кажется, не работает.
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." makeCFLAGS, которые я выбрал для использования, были: "- march=armv5te-fno-tree-vectorize-mthumb-interwork-mcpu=arm926ej-s". Потребуется некоторое время, чтобы правильно настроить все каталоги include: вы можете захотеть, чтобы некоторые из них указывали на ваш кросс-компилятор, а некоторые указывали на вашу корневую файловую систему, и, вероятно, возникнут некоторые конфликты.
Я уверен, что это не идеальный ответ. И я все еще вижу некоторые каталоги, указывающие на / и не /ccrootfs в Makefiles. Хотелось бы знать, как это исправить. Надеюсь, это кому-то поможет.
Comments