【问题标题】:Can I safely assume all (or most) "cc" supports "-Wall" on *nix systems?我可以安全地假设所有(或大多数)“cc”在 *nix 系统上都支持“-Wall”吗?
【发布时间】:2017-10-21 22:51:15
【问题描述】:

我想在 Makefile 中这样写

foo: foo.c
        $(CC) -o foo -Wall foo.c

但我不确定是否所有cc 实现都支持-Wall

【问题讨论】:

  • 通常,您的 makefile 将包含您想要支持的每个编译器的部分,您可以在其中定义 WARNINGS=-Wall 用于 gcc,WARNINGS=/bla 用于 MSVC,然后构建命令将是 @987654326 @

标签: c gcc makefile cc


【解决方案1】:

不,没有关于 C 编译器的命令行界面的标准。

例如,Microsoft 编译器(在 Windows 中)根本不接受以 - 开头的选项,因为这不是 Windows 程序通常使用的语法。

【讨论】:

    【解决方案2】:

    不,您可以做的最接近的仅使用可移植选项的方法是将自己限制在 POSIX C89 和 C99 选项中。 -Wall 不是其中之一。有关选项,请参阅Opengroup's Unix Specification for c99。而且这只给出了unixy系统的答案,而不是微软。

    -Wall 是(AFAIK)由 GNU gcc 引入并由 clang 继承以与 GNU gcc 兼容。

    如果您不害怕研究其他构建工具,那么有些工具支持开箱即用的多操作系统或多工具链构建。我相信sconscmake 可以做到这一点。

    【讨论】:

      猜你喜欢
      • 2013-04-04
      • 1970-01-01
      • 2010-10-26
      • 2012-12-01
      • 2015-10-29
      • 2020-11-14
      • 2011-09-20
      • 1970-01-01
      • 2021-09-09
      相关资源
      最近更新 更多