GCC / clang默认错误标志

时间:2016-12-21 20:23:21

标签: compilation gcc clang

我通常在OSX上编码并使用以下代码编译我的所有程序:-Wall -Wextra -Werror

我在另一台笔记本电脑nixos上下载,当我想编译同一个项目时,我发现-Wunused-result错误。

我可以用-Wno-unused-result禁用它,但是为什么这个标志错误会出现在这个操作系统上?

我找不到默认的标志配置文件或环境变量。

好奇的是,我正在尝试编译的程序是:libft

1 个答案:

答案 0 :(得分:1)

如果您正在OSX上进行编译但尚未安装 gcc ,那么Apple已提供 clang 假装 gcc 。假装不是很好,因为警告(和退出代码)有很多不同。您可以使用

查看正在运行的内容
gcc --version

和(例如 - 我在/opt下使用MacPorts安装了gcc):

$ path -lL gcc
-rwxr-xr-x  3 root  admin  1131416 Jun 10  2016 /opt/local/bin/gcc
-rwxr-xr-x  1 root  wheel  18176 Jul  8 22:52 /usr/bin/gcc

$ /opt/local/bin/gcc --version
gcc (MacPorts gcc5 5.4.0_0) 5.4.0
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

$ /usr/bin/gcc --version
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 8.0.0 (clang-800.0.42.1)
Target: x86_64-apple-darwin15.6.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

正如您所看到的, /usr/bin/gcc 实际上是 clang ,并且(除非Apple进一步改进),会产生类似的消息。< / p>