C++ OSX选择llvm gcc编译器
TLDR:我想使用llvm编译器,而不是使用macports安装的其他gcc编译器 在编译C++库的过程中,我遇到了这个错误: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++ (
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安装工具也能尊重这些变量,但还没有尝试过。