OS X 选择 llvm gcc 编译器
OS X choose llvm gcc compiler
TLDR:我想使用llvm编译器,而不是使用macports安装的其他gcc编译器。
在尝试编译 c++ 库时,我遇到了这个错误:
c++: error: unrecognized option '-arch'
在搜索SO之后,我发现了这篇文章,表明'-arch'
选项是Apple对gcc扩展的一部分。
不久前,我使用Macports安装了不同的GCC版本,以便为其他软件编译一些工具。现在,当我检查此内容时,我可以确认它使用的是Macports中的版本:
$ g++ --version
g++ (MacPorts gcc46 4.6.4_3) 4.6.4
$ which g++ --version
/opt/local/bin/g++
使用 port select
仅产生两个选项,
$ port select --list gcc
Available versions for gcc:
mp-gcc46 (active)
none
所以我不能在这里更改默认编译器。我在哪里可以更改它以在/usr/bin/
中使用llvm编译器?
LLVM附带的编译器是Clang,而不是GCC。你安装了XCode 5吗?还有命令行工具?这篇文章解释了如何非常清楚地安装它们。
然后,您可以尝试运行 clang --version
以验证 clang 是否已正确安装并在命令行中可用。然后要使用自动工具进行编译,您可以将其传递给 CC 和 CXX 变量,如 @paul-roub 所说:
CC=clang CXX=clang++ ./configure
make
请记住,Apple使用的是LLVM/Clang的修改版本。他们以前曾经使用过 GCC,但是如果我没记错的话,当许可证更改为 GPLv3 时,他们放弃了对它的支持。在使用XCode 5.1的干净10.9安装中,您根本不应该拥有GCC,它已被Clang完全取代。
配置脚本和生成文件通常会遵循CC
和CXX
环境变量,告诉它们使用特定的编译器。
例如:
$ CXX=/usr/bin/g++ CC=/usr/bin/gcc ./configure
$ CXX=/usr/bin/g++ CC=/usr/bin/gcc make
您需要选择none
才能返回到默认编译器。如果没有使用 macports 选择 gcc 编译器(因此,/opt/bin
中不存在名为 gcc 的链接),那么遇到的第一个 gcc 编译器将是 /usr/bin
中的编译器。
- 如何解决gcc编译器优化导致的centos双编译器设置中的分段错误
- 初始化迭代器错误 C++ 在 GCC 编译器中
- #pragma(*诊断)当将Clang分析器与GCC编译器混合时
- 为什么 gcc 编译器标志未知?
- 如何使用 GCC 编译器优化创建静态库?
- GCC 编译器是否应该对涉及 [[fallthrough]] 属性的格式错误的C++代码进行诊断?
- 如何在macOS中的旧扩展clang和gcc编译器中初始化数组和向量
- gcc c++编译器中的零大小数组
- 相对于继承的构造函数,gcc 编译器是否还有一个错误?
- template-id 与任何模板声明 GNU gcc 编译器都不匹配
- 关于 PBC 库在 GCC 编译器在 DEV C++ 中使用
- 选择默认的 gcc/g++ 编译器
- GCC编译器,为较低版本的GCC编译应用程序
- 相同的代码在不同的 gcc 编译器中存在巨大的性能差异
- GCC 编译器对类型转换有什么作用?为什么 mac 和 Linux 上的输出不同
- GCC 编译器错误:stl_construct.h、stl_uninitialized.h
- 如何从我的qt应用程序运行gcc编译器?
- GCC 编译器错误:stl_construct.h
- 升级 gcc 编译器/其他修复程序以向后兼容
- GCC 编译器一个字节中有多少位