在 C++ Xcode 中链接犰狳库

Posted

技术标签:

【中文标题】在 C++ Xcode 中链接犰狳库【英文标题】:Linking Armadillo Library in C++ Xcode 【发布时间】:2015-03-06 08:16:37 【问题描述】:

我是 Mac 和犰狳的新手。以下是我在 Armadillo 中使用 C++ 所做的工作。

已下载并安装 Xcode 下载并安装 Homebrew 在终端输入“brew install armadillo”

除此之外,它基本上是 Mac 上的出厂设置。

下载犰狳似乎可以在 brew 中使用,但我不确定下一步该做什么,因为我的代码(如下所示)仍未编译。它仍然说找不到犰狳。

#include<iostream>
#include<armadillo>

using namespace std;
using namespace arma;

int main(int argc, const char * argv[]) 
   mat A;
   A << 1 << 2 << endr << 3 << 4 endr;
   cout << A << endl;

   return 0;

我知道我可能缺少一些简单的东西,但我对这一切都很陌生,所以我很感激建议,谢谢。

【问题讨论】:

你只需要把犰狳路径放到你的项目配置中 【参考方案1】:

我使用了默认的 cmake 选项,所以我的 armadillo.h .dylib 结束了 在 /usr/local/include 和 /usr/local/lib 中,恭敬地。

1) 将包含 armadillo.h 和 armadillo.5.20.2.dylib 的路径添加到 Header Search Paths 和 Library Search Paths。

Search Path Screenshot

搜索对话框可用于查找上述项目参数。

2) 添加dylab作为目标依赖

Link Binary With Libraries Screenshot

点击'+' -> 添加其他 -> ⌘ Shift G -> /usr/local

然后选择/usr/local/lib/armadillo.5.20.2.dylib

回想起来,使用备用安装位置运行 cmake 可能会更好,例如:

cmake -DCMAKE_INSTALL_PREFIX:PATH=/opt

在这种情况下,⌘ Shift G 步骤是不必要的,并且可以通过键入 sudo SetFile -a v /opt 从 Finder 中看到 /opt 目录

【讨论】:

【参考方案2】:

所以我在四处寻找后发现。 /usr/bin/ 被隐藏的事实真的让我很困惑,但我猜你可以从终端那里cd。然后犰狳在路径/usr/local/Cellar/armadillo/4.600.2/include,我在Xcode中复制到Search Paths -> Header Search Paths

【讨论】:

您也可以使用 CMake 安装 Armadillo,而不是通过 Homebrew。请参阅官方犰狳.tar.gz package 附带的README.txt。基于 CMake 的安装会将 Armadillo 标头放入 /usr/include/。 Xcode默认会搜索这个路径。

以上是关于在 C++ Xcode 中链接犰狳库的主要内容,如果未能解决你的问题,请参考以下文章

在 Xcode 4 中链接和编译犰狳

如何从 C++(带有犰狳)代码链接到 PETSc?

如何在编译期间强制犰狳库链接到本地​​ OpenBLAS

使用 PGI 编译器链接到犰狳库的 Makefile

如何将 lapack 和 BLAS 库链接到 C++ 代码

尝试使用 Armadillo 库运行示例时出现 Xcode C++ 链接器错误