Clang:在哪里定义了 -Wall 选项?

标签 c macos gcc makefile clang

我正在阅读 Learn C The Hard Way book ,练习 2。 练习中有一个 Makefile 是这样的 (reference to GitHub repo):

CFLAGS=-Wall -g

all: ex1

clean:
    rm -f ex1

我检查了 man cc 以找到 -Wall 选项定义,但找不到它 ( link to clang documentation )。但是,我在 gcc documentation 中找到了 -Wall 选项.

  • 问题 1。为什么我可以将 -Wall 选项传递给 clang,即使它没有在 clang 中定义?

  • 问题 2。这里的clang和gcc是什么关系?


我的开发环境:macOS Sierra 10.12.1,安装Xcode 8.1

最佳答案

-Wall 在 Clang 中定义。有关其诊断消息(包括 -Wall)的引用,请参阅 http://clang.llvm.org/docs/DiagnosticsReference.html .

-Wall

Some of the diagnostics controlled by this flag are enabled by default.

Controls -Wmost, -Wparentheses, -Wswitch, -Wswitch-bool.

您可以单击其他标志以更深入地了解所有已选择的各种选项。

我发现 Clang 的文档对于我用它做的所有事情都是完整的,尽管我当然还没有穷尽 Clang 的功能。

gcccc 的共同点多于不同之处,LLVM 项目在这里做了一个相当客观的比较:http://clang.llvm.org/comparison.html .

关于Clang:在哪里定义了 -Wall 选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40812465/

相关文章:

Ubuntu 13.10 中的 C 编译错误,可能是 makefile 中的错误

swift - Swift 中的段错误

c - 为什么 OpenMP 可以加速单次迭代循环?

c++ - GCC函数填充值

C++ lambda表达式类中的变量

objective-c - 如何检查 C 数组中的空字符串

c - Sandy Bridge 上的 32 字节存储转发

c - 在 visual studio 2013 中 ctrl/f7 不起作用

java - 非 headless (headless)模式 : Apple AWT Java VM was loaded on first thread

macos - vagrant-coreos 图像在重启时在 OS X 的 virtualbox 4.3.2 中删除共享文件夹