![](/img/trans.png)
[英]C: gcc implicitly converts signed char to unsigned char and vice versa?
[英]Is clang supposed to be the same as gcc and vice versa?
我试图编辑一些 C 代码,编译并测试它。 一路上,我无意中使用了不同的编译器,即 gcc 和 clang。 然后我很无聊,只是在命令行中输入了编译器的两个命令(奇怪但没问题)。 我注意到,当我这样做时,gcc 是 clang 和 clang 只是 Z2C5517DB7BC397F9B14AE357A7CEFF4 显然,当您输入没有 arguments 的编译器命令时,您会收到一条错误消息,指出没有输入文件。 当我刚刚输入命令时,我以为 gcc 应该说这样的话:
gcc: error: no input files
但是当我为 clang 尝试它时,它是一样的。 它说clang: error: no input files
。 所以我的问题是,我在使用 gcc 时是否在运行 clang? 如果是这样,我该如何解决?
gcc 和 clang 是两个完全不同的编译器。 但是由于 gcc 的流行,clang 故意复制了它的许多特性。 在某些环境中(例如最近的 Mac), clang 使用别名安装,因此如果您键入gcc
,您会得到clang
。 听起来这就是你可能发生的事情。
Apple used to use gcc
in Xcode a long time ago, and then they made clang
and running gcc would invoke clang to allow old build script to work correctly. 如果您需要使用 gcc 您可以使用自制软件安装
brew install gcc
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.