我正在将armadillo用于一个项目,并且总体来说运行良好。该项目是基于Xcode的,到目前为止,我设法使其工作的唯一方法是(添加/ usr / include /的标题搜索路径似乎不起作用):
#include "/usr/include/armadillo"
好吧,现在我第一次尝试进行矩阵乘法,并且我做了最简单的事情,以确保没有其他原因。
mat aa = eye(3,3)*eye(3,3);
但这给了我链接器错误:
* “_wrapper_dgemm_”,引用自:
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*)in DynamicGridPoint.o
有人知道这可能是什么原因吗?这些示例(包括矩阵乘法)可以从命令行编译,因此我认为这与我的xcode设置有关
根据答案进行编辑
因此,我尝试通过在项目的“其他链接器标志”中包含-larmadillo并将其添加到“页眉和库”搜索路径中来添加到运行时库,但出现链接错误:“ld :找不到-larmadillo'的库
为什么会这样呢?
/ usr / lib包含以下(相关)文件:
最佳答案
您没有链接到 Armadillo 运行时库(例如-larmadillo)。
要解决此问题,请配置Xcode使其与armadillo运行时库链接,或编辑Armadillo的配置,以使其不使用其运行时库。
后者是通过编辑“include / armadillo_bits / config.hpp”并注释掉ARMA_USE_WRAPPER来完成的。然后,您将需要直接链接到lapack和blas(例如-llapack -lblas),或使用Accelerate框架(例如-framework Accelerate)。