visual-studio - 为什么禁用在 Visual Studio 中不起作用的特定警告

标签 visual-studio qt visual-c++ qmake suppress-warnings

使用 Visual Studio C++ 2013,我有很多警告 C4100:未引用的形式参数,我想禁用它。对于 Debug|Release 配置,我在项目中的“禁用特定警告”中添加了 4100,但不幸的是 VS 仍然输出警告。

我正在使用 VS2008,并且禁用特定警告正在工作,但现在使用 VS2013,它没有。我做错了什么?

编辑:

编译器命令行:

/GS /analyze- /W3 /wd"4100" /Zc:wchar_t /I [...] /Zi /Gm- /Od /Fd".\" /fp:precise /D "_WIN32_WINNT=0x0601" /D "_CRT_SECURE_NO_WARNINGS" /D [...] /errorReport:prompt /WX- /Zc:forScope /GR /Gd /Oy- /MDd /Fa"debug\" /EHsc /nologo /Fo"debug\" /Fp"debug\project1.pch"

其他选项:
-Zm200 -w34100 -w34189 /MP

最佳答案

这让我发疯了一段时间。我的问题是 Qt 的 win32-msvc2013 的默认 qmake.conf(在 qtdir\mkspecs 下查看)包含以下行:
QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON -w34100 -w34189

您没有说您使用的是 Qt,但 -w34100 参数设置警告 4100 在 W3 级别而不是 W4 级别可见。这将优先于 -wd4100,因此您仍会看到警告。对于我们这些使用 qt 的人,您可以将 QMAKE_CXXFLAGS_WARN_ON -= -w34100 添加到您的 .pro 文件或删除 mkspecs 文件夹中的参数。

关于visual-studio - 为什么禁用在 Visual Studio 中不起作用的特定警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20402722/

相关文章:

qt - 将样式表应用于 QTextEdit 中的 HTML 内容

c++ - 如果函数在匿名命名空间中声明,是否可以在全局命名空间中定义?

c++ - 当用户尝试激活 MainWindow 时引发模态 QDialog

sql-server - Visual Studio 旗舰版 2013 : Server Explorer 'Add New Table' and 'New Query' menu items missing

visual-studio - 如何 merge 资源文件?

c++ - 打印没有索引 cpp 的字符数组时出错

c++ - QStyledItemDelegate:区分 closeEditor() 或 setModelData() 的原因

c++ - 在 Visual C++ 中使用预编译 header 的最不显眼的方式是什么?

C++:强制完成模板编译(MSVC/G++)

visual-studio - typescript VS2013