files = (...)
создает массив имен файлов
Синтаксис "$ {files [@]}"
означает _каждый элемент массива; т.е. каждое найденное имя файла. Обратите внимание на окружение "..."
, это важно для предотвращения разделения некоторых имен файлов.
(Это может привести к сбою, если в любом имени файла есть возврат каретки).
Вы можете выполнить следующие действия от имени обычного пользователя
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
необходим для среды выполнения