Как установить пользовательскую либу GMP только для одного пользователя?

files = (...) создает массив имен файлов

Синтаксис "$ {files [@]}" означает _каждый элемент массива; т.е. каждое найденное имя файла. Обратите внимание на окружение "..." , это важно для предотвращения разделения некоторых имен файлов.

(Это может привести к сбою, если в любом имени файла есть возврат каретки).

2
23.02.2016, 17:09
1 ответ

Вы можете выполнить следующие действия от имени обычного пользователя

tar xvjf gmp-6.1.0.tar.bz2
cd gmp-6.1.0
./configure --prefix=${HOME}/gmp/6.1.0
make 
make install

. Это установит gmp в ~ / gmp / 6.1.0 . Теперь, если вы хотите использовать эту версию для компиляции программного обеспечения или использования ее во время выполнения, вы должны установить некоторые переменные среды:

GMP_DIR="${HOME}/gmp/6.1.0"
export LD_LIBRARY_PATH=${GMP_DIR}/lib64:$LD_LIBRARY_PATH
export LIBRARY_PATH=${GMP_DIR}/lib64:$LIBRARY_PATH
export CPATH=${GMP_DIR}/include:$CPATH

Вы можете поместить это в свой ~ / .bashrc или в отдельный файл вы исходный код непосредственно перед тем, как захотите его использовать, или напишите сценарий оболочки, включающий ваши двоичные данные. Другие люди любят использовать модули среды для такого рода задач.

Аргумент -lgmp сообщает вашему компоновщику ссылку на общую библиотеку libgmp.so и -L / gmp_install / lib означает поиск библиотек в / gmp_install / lib и в хорошо известных путях ( / lib, lib64, / usr / lib, / usr / lib64, ...) .

Переменные среды используются следующим образом:

  • LIBRARY_PATH должен предоставлять то же самое, что и переключатель -L
  • CPATH обеспечивает дополнительный путь поиска для файлов заголовков
  • ​​LD_LIBRARY_PATH необходим для среды выполнения
6
27.01.2020, 21:56

Теги

Похожие вопросы