我在Ubuntu 14.10中安装了Armadillo。我有一个示例代码,如下面的
#include <iostream>
#include <armadillo>
using namespace std;
using namespace arma;
int main(int argc, char** argv)
{
mat A = randu<mat>(4,5);
mat B = randu<mat>(4,5);
cout << A*B.t() << endl;
return 0;
}
我在命令行编译,它总是成功的,我在捕获的图像中描绘。
我在C ++和E / C ++ Build Settings中配置了Luna for L ++
正如您所看到的,它类似于命令行,但是当eclipse编译时,它使用-Iarmadillo
而不是-larmadillo
,然后发生错误。
错误是
制作所有构建文件:../ src / Test.cpp调用:GCC C ++编译器 g ++ -std = c ++ 0x -Iarmadillo -O0 -MMD -MP -MF&#34; src / Test.d&#34; -MT&#34; SRC / Test.d&#34; -o&#34; src / Test.o&#34; &#34; ../的src / Test.cpp的&#34; /tmp/ccy9M8WG.o:在函数
void arma::blas::gemv<double>(char const*, int const*, int const*, double const*, double const*, int const*, double const*, int const*, double const*, double*, int const*)': Test.cpp:(.text._ZN4arma4blas4gemvIdEEvPKcPKiS5_PKT_S8_S5_S8_S5_S8_PS6_S5_[_ZN4arma4blas4gemvIdEEvPKcPKiS5_PKT_S8_S5_S8_S5_S8_PS6_S5_]+0x55): undefined reference to
wrapper_dgemv _&#39; /tmp/ccy9M8WG.o:在功能上void arma::blas::gemm<double>(char const*, char const*, int const*, int const*, int const*, double const*, double const*, int const*, double const*, int const*, double const*, double*, int const*)': Test.cpp:(.text._ZN4arma4blas4gemmIdEEvPKcS3_PKiS5_S5_PKT_S8_S5_S8_S5_S8_PS6_S5_[_ZN4arma4blas4gemmIdEEvPKcS3_PKiS5_S5_PKT_S8_S5_S8_S5_S8_PS6_S5_]+0x5b): undefined reference to
wrapper_dgemm _&#39; /tmp/ccy9M8WG.o:在功能上void arma::blas::syrk<double>(char const*, char const*, int const*, int const*, double const*, double const*, int const*, double const*, double*, int const*)': Test.cpp:(.text._ZN4arma4blas4syrkIdEEvPKcS3_PKiS5_PKT_S8_S5_S8_PS6_S5_[_ZN4arma4blas4syrkIdEEvPKcS3_PKiS5_PKT_S8_S5_S8_PS6_S5_]+0x4e): undefined reference to
wrapper_dsyrk _&#39; /tmp/ccy9M8WG.o:在功能上double arma::blas::dot<double>(unsigned int, double const*, double const*)': Test.cpp:(.text._ZN4arma4blas3dotIdEET_jPKS2_S4_[_ZN4arma4blas3dotIdEET_jPKS2_S4_]+0x4a): undefined reference to
wrapper_ddot _&#39; /tmp/ccy9M8WG.o:在功能上TLS wrapper function for arma::arma_rng_cxx11_instance': Test.cpp:(.text._ZTWN4arma23arma_rng_cxx11_instanceE[_ZTWN4arma23arma_rng_cxx11_instanceE]+0x5): undefined reference to
TLS初始化函数 ARMA :: arma_rng_cxx11_instance&#39; 。TEST.CPP :( text._ZTWN4arma23arma_rng_cxx11_instanceE [_ZTWN4arma23arma_rng_cxx11_instanceE] + 0×15): 未定义的引用`arma :: arma_rng_cxx11_instance&#39; collect2: 错误:ld返回1退出状态src / subdir.mk:18:目标配方 &#39; SRC / Test.o&#39;失败了:*** [src / Test.o]错误1
我的问题是
提前谢谢
答案 0 :(得分:0)
您还可以创建GNU Autotools
项目并添加以下行:
bin_PROGRAMS=armadillo_example
armadillo_example_SOURCES=armadillo_example.cpp
armadillo_example_LDADD=-larmadillo
存在源代码的Makefile.am文件。
答案 1 :(得分:-1)
您可能无法与犰狳联系。在Hamed建议的链接中使用-larmadillo。