我正在将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包含以下(相关)文件:
  • libarmadillo.3.80.2.dylib
  • libarmadillo.3.dylib
  • libarmadillo.dylib
  • 最佳答案

    您没有链接到 Armadillo 运行时库(例如-larmadillo)。

    要解决此问题,请配置Xcode使其与armadillo运行时库链接,或编辑Armadillo的配置,以使其不使用其运行时库。

    后者是通过编辑“include / armadillo_bits / config.hpp”并注释掉ARMA_USE_WRAPPER来完成的。然后,您将需要直接链接到lapack和blas(例如-llapack -lblas),或使用Accelerate框架(例如-framework Accelerate)。

    10-08 05:33
    查看更多