g++ -o program main.cpp classOne.cpp classTwo.cpp -lgsl -lgslblas -lm
这就是我安装GSL包时的编译方式。 但现在我正在一台服务器上工作,我无权安装GSL-Library。 我有什么选择?g ++链接问题与GSL
THX
g++ -o program main.cpp classOne.cpp classTwo.cpp -lgsl -lgslblas -lm
这就是我安装GSL包时的编译方式。 但现在我正在一台服务器上工作,我无权安装GSL-Library。 我有什么选择?g ++链接问题与GSL
THX
我不得不经常为此,执行如下:
mypref
),另一种以建立图书馆(假设tmp
)。您有两个新目录:~/mypref
和~/tmp
。~/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
脚本3210作为安装前缀(可能取决于你的服务器的其它选项):./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。
这是我等待的答案! thx为你的时间花花公子!!! – JavaHater 2010-12-17 14:45:49
不客气:-) – 2010-12-17 21:28:21
将它安装在您的主目录中并给出正确的链接路径。这也不是一个选择? – DumbCoder 2010-12-17 13:53:54
@DumbCoder是正确的,我的答案是一个详细的过程如何做到这一点,你可以安装很多其他库,你可能需要这样的。 – 2010-12-17 14:00:54