我试图编辑一些C代码,编译它,并测试它。在此过程中,我无意中使用了不同的编译器,即gcc和clang。然后我感到无聊,就在命令行中输入了编译器的两个命令(奇怪但还好)。我注意到当我这样做的时候,gcc是clang, clang就是clang。显然,当您输入没有参数的编译器命令时,您会得到一个错误,说没有输入文件。当我输入命令
时,我以为gcc应该这样说:gcc: error: no input files
但是当我尝试clang时也是一样的。两个命令都是clang: error: no input files
。所以我的问题是,我在使用gcc时运行clang吗?如果是这样,我该如何解决?
gcc和clang是两个完全不同的编译器。但是由于gcc的流行,clang故意复制了它的许多特性。在某些环境中(比如最近的mac电脑),clang是用别名安装的,所以如果你输入gcc
,就会得到clang
。听起来你可能就会遇到这种情况。
苹果很久以前在Xcode中使用gcc
,然后他们做了clang
,运行gcc会调用clang来允许旧的构建脚本正常工作。如果你需要使用gcc,你可以像
brew install gcc