【发布时间】:2016-11-25 21:27:30
【问题描述】:
我正在阅读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 选项。
第一季度。为什么我可以将
-Wall选项传递给clang,即使它没有在clang 中定义?第二季度。这里clang和gcc是什么关系?
我的开发环境:macOS Sierra 10.12.1,安装了Xcode 8.1。
【问题讨论】:
-
一般来说,如果 GCC 支持该选项,
clang也支持。clang有一些 GCC 没有的选项(例如-Weverything)。祝代码顺利通过-Weverything;这不是不可能的,但有些警告在一般情况下确实不是很有帮助(例如,一个警告测试标准定义的宏的无可挑剔的代码;另一个分析 cmets(!) 的文本并决定是否可以 -我使用-Wno-padded -Wno-vla -Wno-reserved-id-macro -Wno-documentation-unknown-command和-Weverything)。 -
@nos,在您链接到的那个页面上,在“控制错误和警告消息的选项”下,有一个指向诊断参考的链接,其中详细说明了所有可能的标志,包括
-Wall. -
@Keita,如果我提供了您正在寻找的文档,请随时将答案标记为已接受的解决方案,以便其他人知道该问题有适合提问者的解决方案。
标签: c macos gcc makefile clang