尝试回答this SO question我发现了gcc选项
-Wfatal-errors
-fmax-errors=n
每个编译单元工作"
我的意思是,使用2个源代码c文件并使用命令
进行编译gcc -Wall -Wextra -pedantic -Wfatal-errors -o test test1.c test2.c
并将垃圾写入这两个文件中我看到gcc在test1.c
的第一个错误处停止,但它开始编译test2.c
。
我想这是因为gcc进程启动了不同的任务,每个源文件一个,所以选项会被多次应用。
问题是:是否有一个可用的编译器选项"每个gcc命令"?
答案 0 :(得分:3)
据我所知或可以确定,不,海湾合作委员会没有这样的选择。如果确实有,我希望能够将其记录为" Overall Option",或者可能在" Options to Request or Suppress Warnings" (其中记录了-Wfatal-errors
)。这两个部分都没有描述这样一个选项,整体option summary也没有列出任何看似合适的内容,超出了问题中已讨论和拒绝的那些选项。
请注意,我已提及并链接了GCC 6.2.0的文档,这是撰写本文时的最新版本。我认为,假设如果在早期版本中出现诸如所寻求的问题之类的选项那么它将会被推进,这是相当安全的,但我还没有对需要证明这一点的GCC文档进行详尽的搜索。
对我来说最有希望的替代方案就是通过单独的gcc
命令编译每个翻译单元,然后在单独的步骤中将它们链接在一起。 Makefile通常以这种方式工作,如果未启用-k
/ --keep-going
选项,GNU Make将在未能构建任何目标后停止。