Мне приходилось делать это регулярно, выполните следующие действия:
- На сервере создайте один каталог в вашем домашнем каталоге для установки библиотеки (скажем,
mypref
) и еще один для построения библиотеки (скажем, tmp
). У вас есть два новых каталога: ~/mypref
и ~/tmp
.
- Загрузите исходные коды GSL в
~/tmp
(последняя версия ftp: //ftp.gnu.org/gnu/gsl/gsl-1.14.tar.gz), извлеките и перейдите в сгенерированный саб -директория (gsl-1.14
):
cd ~/tmp
wget ftp://ftp.gnu.org/gnu/gsl/gsl-1.14.tar.gz
tar -xvzf gsl-1.14.tar.gz
cd gsl-1.14
- Запустите скрипт
configure
, указав ~/mypref
в качестве префикса установки (и, возможно, другие параметры в зависимости от вашего сервера):
./configure --prefix=${HOME}/mypref
make
make install
- Теперь вы можете безопасно удалить каталог
~/tmp
:
cd; rm -rf tmp
Теперь вы можете скомпилировать вашу программу, используя:
g++ -o program main.cpp classOne.cpp classTwo.cpp -I${HOME}/mypref/include -lm -L${HOME}/mypref/lib -lgsl -lgslcblas
-I
и -L
указывают соответственно путь к заголовкам и библиотеке. Если ваша программа предназначена для выполнения в контексте, где ваш домашний каталог не виден, рассмотрите статическое связывание:
g++ -o program main.cpp classOne.cpp classTwo.cpp ${HOME}/mypref/lib/libgsl.a ${HOME}/mypref/lib/libgslcblas.a -I${HOME}/mypref/include -lm
Двоичный файл, созданный последней командой, больше, чем ранее, но полностью независим от GSL и GSLCBLAS.