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

nhjlsmyf  于 2023-05-19  发布在  其他
关注(0)|答案(1)|浏览(163)

我试图在XCode项目中使用GMP和MPFR。我安装了Homebrew,然后用brew install gmpbrew install mpfr安装了库,看起来很成功。但是,当I #include <gmp.h>时,它表示未找到该文件。我看到一个类似的问题here,它建议我需要告诉编译器在哪里找到它,但我不知道如何做到这一点,也没有太多的细节。
上一篇:我用的是M1 Mac

4smxwvx5

4smxwvx51#

当使用自制软件时,intel mac的默认行为是将自制软件安装到/usr/local中。这意味着该环境中的标头采用/usr/local/include
编译器的默认搜索路径包括这个目录,所以如果你在intel mac上安装自制软件,它会自动在这个位置找到合适的头文件。它还将 * 链接 * /usr/local/lib中的软件,所以它真的很方便-自制软件往往只是在这个环境中构建和链接。
在硅mac(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)
终于
如果你使用的是rosetta 2版本的自制软件(这些是运行在硅Mac电脑上的英特尔二进制文件),那么这些版本将被安装到/usr/local中,并将构建;只要你是在为情报构建二进制文件这不是一个微不足道的情况。在这种环境下,有很多事情最终会变得更加棘手--远远超出了这个答案。

相关问题