linux下armadillo安装,包括blas/openblas/atlas/lapack/arpack

首先下载armadillo:http://arma.sourceforge.net/download.html,我下载的是armadillo-8.400.0.tar.xz,将其解压:

tar xf armadillo-8.400.0.tar.xz

得到armadillo-8.400.0目录,按readme.txt说明安装,执行如下命令:

cd armadillo-8.400.0
.make
make
sudo make install

然后到examples目录,make编译example1,运行看是否正常

cd examples
make
./example1
正常会打印一些矩阵,但也有报错

error: det(): use of ATLAS or LAPACK needs to be enabled

我们查看CMakeCache.txt发现一些类似如下的NOTFOUND提示:

ARPACK_LIBRARY:FILEPATH=ARPACK_LIBRARY-NOTFOUND

如果需要ATLAS、LAPACK等则需要安装,我们到 https://pkgs.org 寻找相关的安装包,这个网站提供各种系统的安装包,搜索下载即可。我下载了如下包,注意一定要下载对应系统版本的,我下载的Centos7的。后三个包要依序安装。


后来编译程序遇到错误:undefined reference to `clapack_dgetrf',未定位具体原因。到正常部署的机器的/usr/lib64下查看so文件的中的函数定义(命令:nm -Do *.so | grep dgetrf),发现没有clapack_dgetrf的定义,但发现openblas有好多dgetrf相关的函数,不管了,把openblas相关包安装上再说。接着安装了openblas相关包,问题解决。


安装命令:

sudo rpm -ivh blas-devel-3.4.2-8.e17.x86_64.rpm
这些包安装完成后,再重新进入armadillo-8.400.0,删除CMakeCache.txt,重新安装一遍,并重新编译运行example1,应该没有问题了。



猜你喜欢

转载自blog.csdn.net/bodybo/article/details/79957393