gpt4 book ai didi

c++ - Armadillo :乘法时出错

转载 作者:行者123 更新时间:2023-11-30 02:55:59 30 4
gpt4 key购买 nike

我在一个项目中使用 Armadillo ,总的来说它运行良好。该项目是基于 Xcode 的,到目前为止,我设法让它工作的唯一方法是(添加/usr/include/的 header 搜索路径似乎不起作用):

#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 并将“/usr/lib”添加到 header 和库搜索路径来链接到运行时库,但我收到链接错误: '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)。

关于c++ - Armadillo :乘法时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15975535/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com