[英]How to fix the armadillo library to c++
我正在使用一台Macbook在这里和那里编程一些代码。 最近,我想和armadillo库一起在C ++中做一些事情。 但是在安装之后,一切似乎都不起作用。
例如,我可以编写arma::mat
变量等,但是当我在TextMate中运行此代码时:
vec q = randu<vec>(5);
cout << normalise(q);
我收到此错误输出:
"Undefined symbols for architecture x86_64:
"_wrapper_dgesdd_", referenced from:
void arma::lapack::gesdd<double>(char*, int*, int*, double*, int*, double*, double*, int*, double*, int*, double*, int*, int*, int*) in test-56d704.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
rm: /var/folders/sh/vr2n15ln47j0k33yh1j0_tyw0000gn/T/test.cpp.Sfz5vezN: No such file or directory
奇怪的是,如果我不使用normalize或norm函数,它将很好地编译。
我将库包含为#include '/usr/local/include/armadillo'
编辑:我已经安装了armadillo软件包,既可以尝试“ brew install armadillo
”,也可以使用README.txt中提到的步骤(如果从其网页下载armadillo的话)。
Edit2:在textmate中,我向TM_CXX_FLAGS中的变量添加了一个标志:-I / usr / local / include -DARMA_DONT_USE_WRAPPER -lblas -llapack ..这似乎解决了通过textmate编译时的问题。.但是我不明白如何解决。在XCode中
Edit3:编译时发现这是警告...
lang:警告:-lblas:'链接器'输入未使用lang:警告:-llapack:'链接器'输入未使用c:警告:-llapack:'链接器'输入未使用c:警告:-lblas:'链接器'输入未使用
有人知道如何在Xcode中为编译器正确添加标志吗?
当我开始使用犰狳编程时,我首先遇到了同样的问题。 对于g ++,我只需要添加-larmadillo
作为命令行选项。 这样的
g++ -O2 -o armadillo_example armadillo_example.cpp -larmadillo
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.