Armadillo C++库-C++11编译器需要错误



我使用的是Xcode 12.4的MacOS 10.15.7,我想在我的iOS Swift项目中使用Armadillo库。所以我首先通过Homebrew安装了Armadillo。

Armadillo安装在路径/usr/local/Cellar/armadillo/

我在路径/usr/local/Cellar/armadillo/10.5.1/include中找到了头文件,在路径/usr/local/Cellar/armadillo/10.5.1/lib中找到了库文件

在Xcode项目中,构建设置我在页眉搜索路径和库搜索路径中提供了上述路径。

我的错误低于三个。

  • /usr/local/Cellar/armadillo/10.5.1/include/armadillo_bits/compiler_check.hpp:50:4: error: "*** C++11 compiler required; enable C++11 mode in your compiler, or use an earlier version of Armadillo"
  • /usr/local/Cellar/armadillo/10.5.1/include/armadillo:23:10: error: 'cstdlib' file not found #include <cstdlib>
  • <unknown>:0: error: failed to emit precompiled header

不确定如何继续。。有什么建议吗???

您将无法轻松做到这一点。Swift还不支持C++互操作,但这是一个长期目标。您可以在Swift git repo中的C++Interop Manifesto中阅读。你现在能做的最好的事情就是用C++围绕你想调用的任何C++函数编写一个extern "C"包装器,然后将你的包装器导入Swift。既然您使用的是Xcode项目,我建议您尝试这样的方法。

或者,根据你需要Armadillo做什么,你可能可以不用它就离开。如果你只需要做线性代数,苹果在Accelerate中包括LAPACK(见此处(和BLAS(见这里(,它在所有苹果平台上都可以使用,无需安装任何东西。这对你来说可能很熟悉,因为Armadillo通过LAPACK进行矩阵分解。如果您正在寻找集成,还有正交(见此处(。我对每一个都有很好的体验。

最新更新