C++ OSX选择llvm gcc编译器

C++ OSX选择llvm gcc编译器,c++,macos,gcc,compilation,macports,C++,Macos,Gcc,Compilation,Macports,TLDR:我想使用llvm编译器,而不是使用macports安装的其他gcc编译器 在编译C++库的过程中,我遇到了这个错误: c++: error: unrecognized option '-arch' 在搜索了SO之后,我找到了一篇文章,其中指出,'-arch'选项是苹果对gcc的扩展的一部分 不久前,我使用Macports安装了一个不同的GCC版本,以便为其他软件编译一些工具。现在,当我检查此项时,我可以确认它正在使用Macports的版本: $ g++ --version g++ (

TLDR:我想使用llvm编译器,而不是使用macports安装的其他gcc编译器

在编译C++库的过程中,我遇到了这个错误:

c++: error: unrecognized option '-arch'
在搜索了SO之后,我找到了一篇文章,其中指出,
'-arch'
选项是苹果对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 --list gcc
Available versions for gcc:
    mp-gcc46 (active)
    none

所以我不能在这里更改默认编译器。在哪里可以更改此设置以使用
/usr/bin/
中的llvm编译器?

配置脚本和生成文件通常会尊重
CC
CXX
环境变量,告诉它们使用特定的编译器

e、 g:


配置脚本和生成文件通常会考虑
CC
CXX
环境变量,告诉它们使用特定的编译器

e、 g:


LLVM附带的编译器是Clang,而不是GCC。你安装了XCode 5吗?还有命令行工具?非常清楚地解释了如何安装它们

然后,您可以尝试运行
clang--version
,以验证clang是否已正确安装并且可以在命令行中使用。然后,要使用自动工具进行编译,可以将其传递到CC和CXX变量中,正如@paul roub所说:

CC=clang CXX=clang++ ./configure
make

请记住,苹果使用的是经过修改的LLVM/Clang版本。他们以前使用GCC,但如果我没记错的话,当许可证更改为GPLv3时,他们放弃了对它的支持。在使用XCode 5.1的干净的10.9安装中,您根本不应该使用GCC,它已被Clang完全取代。

LLVM附带的编译器是Clang,而不是GCC。你安装了XCode 5吗?还有命令行工具?非常清楚地解释了如何安装它们

然后,您可以尝试运行
clang--version
,以验证clang是否已正确安装并且可以在命令行中使用。然后,要使用自动工具进行编译,可以将其传递到CC和CXX变量中,正如@paul roub所说:

CC=clang CXX=clang++ ./configure
make

请记住,苹果使用的是经过修改的LLVM/Clang版本。他们以前使用GCC,但如果我没记错的话,当许可证更改为GPLv3时,他们放弃了对它的支持。在使用XCode 5.1的干净的10.9安装中,您根本不应该使用GCC,但它已被Clang完全取代。

我认为您需要选择
none
返回默认编译器。
如果使用macports未选择任何gcc编译器(因此,
/opt/bin
中不存在名为gcc的链接),则遇到的第一个gcc编译器将是
/usr/bin

中的编译器。我相信您需要选择
返回默认编译器。
如果没有使用macports选择任何gcc编译器(因此,
/opt/bin
中不存在名为gcc的链接),那么遇到的第一个gcc编译器将是
/usr/bin

中的一个,是否有办法使这成为永久性更改?我还尝试使用
python setup.py install
而不是makefile来安装一些东西。您可以将
export CXX=/usr/bin/g++
等添加到您的
.Profile
,但这可能会搞乱其他事情。我希望Python安装工具也能尊重这些变量,但还没有尝试过。有没有办法使这成为一个永久性的改变?我还尝试使用
python setup.py install
而不是makefile来安装一些东西。您可以将
export CXX=/usr/bin/g++
等添加到您的
.Profile
,但这可能会搞乱其他事情。我希望Python安装工具也能尊重这些变量,但还没有尝试过。