【问题标题】:Disable Qt warnings in Visual Studio 2008在 Visual Studio 2008 中禁用 Qt 警告
【发布时间】:2013-06-02 16:44:32
【问题描述】:

我们使用 VS 2008 Professional 和 Qt Visual Studio 插件来开发 Qt 4.8.4 应用程序。我想将警告级别设置为 4(所有警告),但仅限于我们自己的代码。如果我在项目属性下设置警告级别 >= 2,我会从 Qt 头文件中收到数百条警告,我们 #include

不幸的是,VS 似乎没有与 gcc 的 -isystem 选项等效的选项。我尝试将 Qt #includes 封闭在 #pragma warning(push, 0)#pragma warning(pop) 之间,但效果有限。自动生成的 moc_*.cpp 文件仍然会导致有关 Qt 头文件中代码的警告。也比较麻烦。

您知道实现此目的的任何其他方法吗?我发现很难相信所有 Qt/MSVC 用户在构建后都会忽略警告或浏览数百个不相关的警告。

【问题讨论】:

  • 我目前正在编译我的大部分代码(使用 Qt + 其他库),警告级别为 1。但是我想增加它,因为它已经咬了我好几次了。

标签: c++ visual-studio qt visual-studio-2008


【解决方案1】:

我们将 #include 块包装在 pragma 中以禁用警告。 除此之外,我们只能希望 MS 有一天会实施 isystem。 https://visualstudio.uservoice.com/forums/121579-visual-studio-2015/suggestions/14717934-add-a-cl-exe-option-for-system-headers-like-gcc-s

【讨论】:

    【解决方案2】:

    我发现只有一种方法可以做到这一点:触摸几乎每个 Qt 头文件并在正确的位置包含 #pragma warning(push, 0)#pragma warning(pop)。我尝试过一次,但在下一个 Qt 版本发布时放弃了。

    另一种减少警告的可能性是在正确的 qmake.conf 文件中禁用特定警告(例如,在 mkspecs\win32-msvc2010 中)。

    我已更改此文件中的一些行:

    QMAKE_CFLAGS_WARN_ON    = -W4 -w34100 -w34189 -wd4127 -wd4512
    QMAKE_CFLAGS_RELEASE    = -Ox -MD
    QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -Ox -MD -Zi
    QMAKE_CXXFLAGS_WARN_ON  = $$QMAKE_CFLAGS_WARN_ON
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-15
      • 1970-01-01
      • 2019-12-12
      • 1970-01-01
      • 2011-01-31
      相关资源
      最近更新 更多