g++ -o program main.cpp classOne.cpp classTwo.cpp -lgsl -lgslblas -lm
这是我安装GSL包时的编译方式。 但现在我正在服务器上,我无权安装GSL-Library。 我有什么选择?
THX
答案 0 :(得分:10)
我必须经常这样做,如下:
mypref
),另一个目录用于构建库(假设为tmp
)。您有两个新目录:~/mypref
和~/tmp
。~/tmp
下载GSL源代码(上一版本为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。