ubuntu安装armadillo

作者:, 发表于

armadillo是一个线性代数C++库,封装了blaslapack,提供更直观的接口。

1.安装依赖项

sudo apt-get install libopenblas-dev liblapack-dev

2.下载

wget http://sourceforge.net/projects/arma/files/armadillo-7.200.2.tar.xz

最新的版本可以在 http://arma.sourceforge.net/download.html 找到。

3.安装

tar -Jxvf armadillo-7.200.2.tar.xz
cd armadillo-7.200.2
cmake .
make
sudo make install

4.测试

cd example1
g++ -o example1 example1.cpp -O2 -larmadillo
./example1

5.链接错误

测试程序出现下面的编译错误:

/tmp/ccstw4HV.o: In function `double arma::auxlib::det_lapack<double>(arma::Mat<double> const&, bool)':
example1.cpp:(.text._ZN4arma6auxlib10det_lapackIdEET_RKNS_3MatIS2_EEb[_ZN4arma6auxlib10det_lapackIdEET_RKNS_3MatIS2_EEb]+0xba): undefined reference to `wrapper_dgetrf_'
/tmp/ccstw4HV.o: In function `std::ostream& arma::operator<< <double, arma::Op<arma::Mat<double>, arma::op_inv> >(std::ostream&, arma::Base<double, arma::Op<arma::Mat<double>, arma::op_inv> > const&)':
example1.cpp:(.text._ZN4armalsIdNS_2OpINS_3MatIdEENS_6op_invEEEEERSoS6_RKNS_4BaseIT_T0_EE[_ZN4armalsIdNS_2OpINS_3MatIdEENS_6op_invEEEEERSoS6_RKNS_4BaseIT_T0_EE]+0x166): undefined reference to `wrapper_dgetrf_'
example1.cpp:(.text._ZN4armalsIdNS_2OpINS_3MatIdEENS_6op_invEEEEERSoS6_RKNS_4BaseIT_T0_EE[_ZN4armalsIdNS_2OpINS_3MatIdEENS_6op_invEEEEERSoS6_RKNS_4BaseIT_T0_EE]+0x25e): undefined reference to `wrapper_dgetri_'
example1.cpp:(.text._ZN4armalsIdNS_2OpINS_3MatIdEENS_6op_invEEEEERSoS6_RKNS_4BaseIT_T0_EE[_ZN4armalsIdNS_2OpINS_3MatIdEENS_6op_invEEEEERSoS6_RKNS_4BaseIT_T0_EE]+0x404): undefined reference to `wrapper_dgetri_'
collect2: error: ld returned 1 exit status

没找到具体原因。但把/usr/lib/usr/include下面的armadillo删掉可以解决:

sodu rm /usr/lib/libarmadillo*
sudo rm /usr/include/armadillo* -r

删除后运行程序会出现运行时链接错误:

./example1: error while loading shared libraries: libarmadillo.so.7: cannot open shared object file: No such file or directory

这是因为/usr/local/lib没有加到LD_LIBRARY_PATH。我们也可以手工把local下面的so复制到/usr/lib下:

sodu cp /usr/local/lib/libarmadillo* /usr/lib/

Q.E.D.


上一篇:安装oh-my-zsh2016年10月1日
zsh比bash要好看一点。颜值也是生产力。 sudo apt-get install zsh sudo usermod -s /bin/zsh username sh -c "$(wget https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.s

下一篇:Python的numpy摘要2017年1月14日
numpy是python的(事实)标准矩阵库,很多其它库(比如pandas, sklearn)都以numpy为数值处理对象,因此也是其它库的基础。 属性 arr.shape # 等价于matlab的si


  • 支持使用微薄、微信和QQ的账户登陆进行评论。由各自网站直接认证,不会泄露你的密码。
  • 登陆后可选择分享评论到所绑定的社交网络,如微薄、人人和QQ空间。
  • 评论提交后无法修改。如需修改,请删除原评论再重新提交。
  • 评论支持LaTeX代码,行内公式请用\(a+b=c\),行间公式请用\[a+b=c\]。公式只支持英文字符。