clang 应该与 gcc 相同,反之亦然?

时间:2021-02-03 23:44:19

标签: c gcc compilation clang

我试图编辑一些 C 代码、编译它并测试它。一路上,我无意中使用了不同的编译器,即 gcc 和 clang。然后我感到无聊,只是在命令行中输入了编译器的两个命令(奇怪但没问题)。我注意到当我这样做时,gcc 是 clang 而 clang 只是 clang。显然,当您输入不带参数的编译器命令时,您会收到一条错误消息,指出没有输入文件。当我输入命令时,我以为 gcc 应该说这样的话:

gcc: error: no input files

但是当我为 clang 尝试它时也是如此。它对两个命令都表示 clang: error: no input files。所以我的问题是,我在使用 gcc 时运行 clang 吗?如果是这样,我该如何解决?

2 个答案:

答案 0 :(得分:1)

gcc 和 clang 是两个相当不同的编译器。但是由于 gcc 的流行,clang 特意复制了它的许多功能。并且在某些环境中(例如最近的 Mac),clang 是使用别名安装的,因此如果您键入 gcc,您将获得 clang。听起来您可能会遇到这种情况。

答案 1 :(得分:0)

Apple 很久以前在 Xcode 中使用 gcc,然后他们制作 clang 并运行 gcc 会调用 clang 以允许旧的构建脚本正常工作。如果您需要使用 gcc,您可以使用自制软件安装

brew install gcc