如何使用 Brew 将 GMP 安装到 XCode 中?

问题描述 投票:0回答:1

我正在尝试在 XCode 项目中使用 GMP 和 MPFR。我安装了Homebrew,然后用

brew install gmp
brew install mpfr
安装库,似乎成功了。但是,当我
#include <gmp.h>
时,它说找不到文件。我看到一个类似的问题here,它建议我需要告诉编译器在哪里可以找到它,但我不知道该怎么做,而且没有太多细节。

编辑:我在 M1 Mac 上。

c++ xcode homebrew gmp
1个回答
0
投票

使用 homebrew 时,intel mac 的默认行为是将 homebrew 安装到

/usr/local
中。这意味着该环境中的标头位于
/usr/local/include
.

编译器的默认搜索路径集包括这个目录,所以如果你在 intel macs 上安装自制软件,它会自动在那个位置找到合适的头文件。它还将针对/usr/local/lib中的软件

link
,所以它真的很方便——自制软件往往只是在这个环境中构建和链接。

在 silicon macs (m1/m2) 上,默认行为发生变化。当您安装 native 包时,它们将安装到

/opt/homebrew
.

头目录为

/opt/homebrew/include
,库目录为
/opt/homebrew/lib
。不幸的是,这两个文件夹都不会成为默认构建路径的一部分,这将导致编译和链接失败。

为了将标头文件夹添加到构建设置中,您需要转到目标的

build settings

header search paths
添加标题文件夹
/opt/homebrew/include
.

library search paths
中,添加库文件夹
/opt/homebrew/lib

如果您使用的是 Makefile,相应的项目将是:

-I/opt/homebrew/include
-L/opt/homebrew/lib

如果您使用的是 cmake,则需要设置的相应变量为:

include_directories(/opt/homebrew/include)
link_directories(/opt/homebrew/lib)
.

最后……

如果您使用的是自制软件的 rosetta2 版本(这些将是在硅 mac 上运行的英特尔二进制文件),那么这些版本将安装到

/usr/local
中,并将构建;只要您正在为英特尔构建二进制文件。这是一个不小的情况。在这个环境中,有 lot 事情最终变得更加棘手 - 远远超出了这个答案。

© www.soinside.com 2019 - 2024. All rights reserved.