gpt4 book ai didi

macos - 在 Mac 上从 llvm-g++-4.2 升级到 g++-4.7 的正确方法

转载 作者:行者123 更新时间:2023-12-04 20:50:59 24 4
gpt4 key购买 nike

我有安装了命令行工具的 Lion 10.7.3。我想尝试 C++11,所以我使用 Homebrew 软件安装 GCC 4.7,如文档 here 所示。 .

我现在如何将/usr/bin/g++ 升级为 Homebrew 安装的那个?它像符号链接(symbolic link)一样简单吗?我只是想仔细检查并确定。谢谢!

最佳答案

首先,你确定你需要g++ 4.7吗?从 C++11 implementation status 可以看出页面,最新版本的 clang 也支持大部分 C++11。当然,还有一些东西是 g++ 处理而 clang 没有的,但也有一些东西是 clang 支持而 g++ 不支持的。而且,更重要的是,您已经拥有来自 Apple 的最新版本的 clang,已配置并准备就绪,作为您的默认编译器。另外,4.2 之后的 g++ 不支持 Mac 扩展,例如 -arch ,这意味着您不能使用它来构建大量第三方软件(因为大多数配置脚本都假定如果您在 Mac 上,您的编译器支持 Mac 扩展)。

但是如果你想要 g++ 4.7,你可以做到。只是不要试图替换/usr/bin/g++使用不同的版本。切勿替换 /usr/bin 中的任何内容(或 /System )除了在极少数情况下(当你从知道他们在说什么的人那里得到强有力的保证时)之外的非 Apple 的东西。

更好的做法是并行安装另一个编译器。只需让 Homebrew 安装它最喜欢的方式(因此它安装到一些前缀,如/usr/local/Cellar/gcc/4.7,然后将所有适当的东西符号链接(symbolic link)到/usr/local/bin 等),并以这种方式使用它。

编译代码时,不要写 g++ ,写/usr/local/bin/g++ , 或 g++-4.7 .

如果您厌倦了这样做,请输入 /usr/local/bin在您的 PATH 上高于 /usr/bin ,或者创建一个shell别名,或者将其粘贴在环境变量CXX中并写入$CXX而不是 g++ .

如果您使用的是 GUI IDE,您应该能够通过在某处设置路径来将其配置为使用您的编译器。 (除非您使用的是 Xcode,否则您只能将其配置为使用 Apple 测试的编译器。)

这就是您试验自己的代码所需要的一切。如果你想用这个编译器编译第三方应用程序,那可能会有点复杂。您通常不会实际编译每个源文件并将结果链接在一起;你只要做configure && make让他们为您完成繁重的工作。

幸运的是,大多数软件包都会尊重标准环境变量,尤其是 CXX。用于指定默认 C++ 编译器和 CC对于默认的 C 编译器。 (这就是为什么我在上面建议使用名称 CXX。)

请记住,g++ 4.7 不支持 Mac 扩展,所以如果你不准备调试一堆基于 autoconf 的配置脚本,它们提示你的编译器无法生成代码,因为它假设它可能会抛出 -arch x86_64在 Mac 等的任何编译器上,不要这样做。

关于macos - 在 Mac 上从 llvm-g++-4.2 升级到 g++-4.7 的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10786699/

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