我有一个我不久前写的发行版,并愉快地安装在 Fedora、Ubuntu 和 OSX 上。我现在正试图让它安装在 Ubuntu 14 LTS 上,但遇到了一些困难。
我相信我已经安装了必要的库:
$ sudo apt-get install g++ gsl-bin gsl-ref-html libgsl0-dev
并让 gsl-config 告诉我在我的配置中使用什么:
$ gsl-config --prefix
/usr
$ gsl-config --libs
-L/usr/lib -lgsl -lgslcblas -lm
$ gsl-config --cflags
-I/usr/include
但是当我配置时,它似乎没有找到数学和 GSL 库:
$ ./configure --prefix /usr LDFLAGS='-L/usr/lib -lgsl -lgslcblas -lm' CPPFLAGS=-I/usr/include
...
checking for gsl_eigen_symm in -lgsl... no
checking for gsl_matrix_view_array in -lgslcblas... no
…
checking for floor... no
checking for pow... no
checking for sqrt... no
...
不出所料,make 命令在链接中失败:
$ 制作
…
g++ -g -O2 -lgsl -lgslcblas -L/usr/lib -lgsl -lgslcblas -lm -o neuron neuron.o dataset.o twoset.o utility.o stats.o vector_ops.o matrix.o model.o iterative.o network.o simpleprop.o bareprop.o backprop.o logistic.o regressnet.o dfa.o ldfa.o qdfa.o
network.o: In function `Network::reportCondNum(std::ostream&)':
/home/craign/neuron-2.63/src/network.cpp:636: undefined reference to `gsl_matrix_view_array'
… bunch of other undefined reference errors
有任何想法吗?
提前谢谢了,
克雷格
最佳答案
这个命令行:
g++ -g -O2 -lgsl -lgslcblas -L/usr/lib -lgsl -lgslcblas -lm -o neuron neuron.o ...
完全倒退了。 (阅读 this 或 this 以了解为什么链接行上的对象和库的顺序很重要。)
你可能想要:
./configure --prefix /usr LIBS='-lgsl -lgslcblas -lm' ...
关于ubuntu - 在 Ubuntu 中很难将数学和 GSL 联系起来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31988923/