代码之家  ›  专栏  ›  技术社区  ›  KPexEA

在使用微软的Visual C++编译器时,gcc是否有等效的“迂腐”?

  •  13
  • KPexEA  · 技术社区  · 16 年前

    我希望使用Microsoft Visual C++编译器将我的警告设置为最高级别。类似于在gcc上使用-pedantic。您使用哪些编译器开关来启用最多的警告?

    6 回复  |  直到 13 年前
        1
  •  12
  •   billmcc    16 年前

    Visual C++的最高警告级别是/Wall。警告级别也可以用/W0、/W1、…进行数字设置。../W4以生成越来越多的警告级别。

    编译器还将检查/Wp64的64位可移植性问题。

    您可以使用/WX告诉它将警告视为错误

    Visual C++似乎没有真正等同于“迂腐”的东西,即要求gcc报告ISO C和C++标准要求报告的所有警告。

        2
  •  5
  •   Community CDub    8 年前

    billmcc64 mentioned ,gcc的-pedantic会导致gcc在您使用任何非标准扩展时发出警告。我认为你不能让MSVC对类似的情况发出警告,但你可以使用/Za选项让它在这些情况下生成错误。

        3
  •  4
  •   Nick    16 年前

    请注意,如果可能的话,Microsoft不建议使用/Wp64,而不是直接为64位平台编译。

    还要注意,TeamDeveloper版本有一个/analyze选项,它为常见的代码错误添加了语义检查。您还可以查看从gimpel获取PC lint以进行额外的语义检查。

        4
  •  3
  •   Ray Tayek    16 年前

    查看新 /permissive- Visual Studio 2017及更高版本支持的选项。这个 /宽容- 该选项与最新Windows工具包中的几乎所有头文件兼容,例如从Windows Fall Creators SDK(10.0.16299.0)开始的软件开发工具包(SDK)或Windows驱动程序工具包(WDK)。旧版本的SDK可能无法在以下条件下编译 /宽容- 出于各种源代码一致性原因。

    还有 /Za 用于禁用所有语言扩展名的选项,但这也会导致从以下位置生成头文件时出现编译错误 Windows工具包 使用(例如 温特。英语字母表的第8个字母 winioctl。英语字母表的第8个字母 ).因此,这种选择实际上并不可行。

    请参阅: https://learn.microsoft.com/en-us/cpp/build/reference/permissive-standards-conformance

        5
  •  3
  •   boqpoq    4 年前

    如果你想要像迂腐的东西,试试像pc lint这样的好棉绒( http://www.gimpel.com/html/products.htm ).

        6
  •  1
  •   Menkboy    16 年前

    /W4 /Wall 应该会成功。