繁体   English   中英

如何将犰狳库修复为C ++

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM