ubuntu - 在 Ubuntu 中很难将数学和 GSL 联系起来

标签 ubuntu g++ ubuntu-14.04 autotools gsl

我有一个我不久前写的发行版,并愉快地安装在 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 ...



完全倒退了。 (阅读 thisthis 以了解为什么链接行上的对象和库的顺序很重要。)

你可能想要:
./configure --prefix /usr LIBS='-lgsl -lgslcblas -lm' ...

关于ubuntu - 在 Ubuntu 中很难将数学和 GSL 联系起来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31988923/

相关文章:

android - 在ubuntu14.04中找不到NDK_ROOT cocos2d-x

php - 使用 Ubuntu 在 Nginx 上托管应用程序时出现路由问题

ubuntu - 如何修复 JetBrains 产品(WebStorm、IDEA)中的 Ubuntu 非拉丁键盘快捷键?

amazon-web-services - Nginx 在创建 aws ec2 实例后无法正常工作

C++ 和 pulseaudio "not declared in this scope"

c++ - 为什么可以在g++(gcc)中重新定义gnulib?

c++ - C++自定义范围类型MSVC可以编译,但G++不能

ubuntu - 防止禁用的 DAG 在启用时立即运行

java - Android4.0.3源码编译错误: [out/target/product/generic/obj/STATIC_LIBRARIES/libext_intermediates/initext.o]错误1

linux - 如何以 dasusr 身份登录?