我正在尝试从macOS上的源代码安装Riak(https://docs.riak.com/riak/kv/2.2.3/setup/installing/mac-osx.1.html#installing-from-source)。
有一条注解:
Riak不会用Clang编译。请确保您的默认C/C++编译器是GCC
我如何找出哪个编译器是默认的,以及如何更改它?
macOS Catalina (10.15.4),* 其中 * 命令打印:
$ which clang
/usr/bin/clang
$ which gcc
/usr/bin/gcc
2条答案
按热度按时间niknxzdl1#
在macOS Catalina (以及之前的版本,很可能还有后续版本)上,问题有两个方面,并提出了一些建议的解决方案。
默认情况下
make
使用的编译器名称是什么?这表明
make
使用的名称是cc
和c++
,它们不明显是clang
或clang++
,但也不明显是gcc
和g++
。到底是哪个编译器?
名称
cc
、c++
、gcc
、g++
、clang
和clang++
的背后到底是哪个编译器?我们可以通过让它们标识版本来检查它们到底是哪个编译器:正如您所看到的,安装在
/usr/bin
中的版本都是相同的编译器,该编译器是clang
或clang++
。这是在一台装有macOS莫哈韦10.14.6和XCode 11.3.1的机器上运行的。最新版本的XCode - 11.4.1 -只在 Catalina 上可用。然而,总的结论是一样的-所有的C和C++编译器实际上都是伪装的
clang
和clang++
。如何将GNU GCC安装到您的机器上?
如何将真实的的GNU GCC(真正的GCC,而不是伪装的
clang
)安装到您的机器上?请注意,苹果已经采取了隐藏系统头文件英里以外的方式(不是在
/usr/include
-你不能修改文件系统的这一部分,以添加一个符号链接到他们已经隐藏他们):(You我的意思是你猜不到?我也是!)
如何更改默认编译器?
一旦你在适当的地方安装了GCC,你需要确保你使用的是“真实的的”GCC,而不是
/usr/bin
中的“假的”。你可以通过确保“真正的”GCC的bin目录出现在你的路径中/usr/bin
之前来做到这一点。我在/opt/gcc/v9.3.0
下安装了GCC 9.3.0,所以/opt/gcc/v9.3.0/bin
早于/usr/bin
出现在我的PATH中。您还需要确保
riak
(您正在安装的软件)的配置使用正确的编译器。如果有./configure
脚本,请使用为编译器指定的正确路径运行它。例如,我可能用途:也可以将这些值设置为环境变量。
如果它使用
cmake
或其他配置包,你需要参考安装说明,通常是README
,有时是INSTALL
。另见(职位越老):
n6lpvg4x2#
对于 macOs,请执行以下步骤:
1.使用homebrew安装gcc编译器如果尚未安装,请使用命令:
1.假设brew在您的系统上安装了gcc-12版本,请使用以下命令进行检查:
1.打开终端并使用以下命令:
1.下面给出的命令将为g与g-12建立一个符号链接。使用此命令,您可以轻松地在不同版本之间切换
现在检查
gcc --version
,它将从macOs的默认clang更改为gcc。**注意:**您也可以执行相同的步骤来更改g++,只需将
gcc-12
替换为g++-12
即可**PS:**也可能在那个时候你会看到这个答案brew安装一些最新的gcc或g++版本,如gcc-13等,所以请确保相应地修改命令。