我可以在 C/C++ 高级属性页中禁止 Visual Studio 2005 SP1 中的许多警告,这会导致 IDE 在调用编译器的命令行上使用 /wd 开关。但是,当我尝试禁止警告 4200(使用了非标准扩展:结构/联合中的零大小数组)时,它仍然在我编译时出现。(当然这是有道理的;我只是无法修复代码,也不值得打扰,因为它是生成的,并且警告在这种情况下完全是良性的。)有没有人碰巧知道这是否是编译器中的错误?或者我可以做些什么?
问问题
1770 次
2 回答
3
要完全禁用文件中的警告,您可以将以下内容添加到文件顶部
#pragma warning(disable:2400)
如果您想要文件的全面禁用以外的更多灵活性,以下页面列出了其他几个更细粒度的选项。
根据您的信息尚不清楚这是编译器中的错误还是配置问题。我倾向于配置问题,特别是冲突的编译器选项,这使得抑制警告变得困难。
编辑
OP 提到他们无法控制生成的代码,因此他们不能直接包含编译指示。如果是这种情况,那么试试这个技巧。假设文件名为 Generated.cpp。不再包含 Generated.cpp 作为要编译的文件之一。而是创建一个名为 Example.cpp 的新文件,其中包含以下内容
#pragma warning(disable:2400)
#include "Generated.cpp"
现在,您只需编译 Example.cpp 即可获得带有禁用警告的 Generated.cpp 文本。
于 2009-05-01T01:02:56.873 回答
1
你的意思是和pragma一样?
#pragma warning( disable : 2400 )
于 2009-05-01T01:04:49.350 回答