【问题标题】:Stop GCC on error with multiple files compilation多文件编译出错时停止 GCC
【发布时间】:2017-05-02 10:48:06
【问题描述】:

尝试回复 this SO question 我发现 gcc 选项

  • -Wfatal-errors
  • -fmax-errors=n

“按编译单元”工作

我的意思是,使用2个源代码c文件并用命令编译

gcc -Wall -Wextra -pedantic -Wfatal-errors -o test test1.c test2.c

并将垃圾写入两个文件我看到test1.c 的第一个错误处停止,但它开始编译test2.c

我猜是因为 进程启动了不同的任务,每个源文件一个,所以选项被应用了多次。

问题是:是否有一个编译器选项可以“按 gcc 命令”工作?

【问题讨论】:

    标签: gcc gcc c gcc compiler-errors


    【解决方案1】:

    据我所知或可以确定,不,GCC 没有这样的选择。如果确实有,我希望它会被记录为“Overall Option”,或者可能在“Options to Request or Suppress Warnings”中(其中记录了-Wfatal-errors)。这两个部分都没有描述这样的选项,整个option summary 也没有列出任何似乎合适的内容,除了问题中已经讨论和拒绝的那些选项。

    请注意,我参考并链接了 GCC 6.2.0 的文档,这是撰写本文时的最新版本。我认为可以合理地假设,如果早期版本中存在诸如问题搜索之类的选项,那么它将被继承,但我没有对 GCC 文档进行详尽的搜索来证明这一点。

    对我来说似乎最有希望的替代方法是通过单独的gcc 命令编译每个翻译单元,然后在单独的步骤中将它们链接在一起。 Makefiles 通常以这种方式工作,并且 GNU Make 将在未能构建任何目标后停止,前提是未启用其 -k / --keep-going 选项。

    【讨论】:

    • 嗯,这是我猜到的答案,makefile 肯定是正确的方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-28
    • 2015-06-27
    • 1970-01-01
    相关资源
    最近更新 更多