天天看点

关于编译时的warning treated as error

         编译器提示:warning treated as error,然后某个文件未生成,build中断。

         这是因为项目选项中把warning级别设置为了较高的级别导致的,某些warning被当作error,从而不能生成。

         解决方法是在解决方案窗口中选中项目,右键点击project,选择“属性”,在弹出的对话框中,选择左侧TreeView中的“Configuration Properties”->“C/C++l”->“General”节点,在右侧有“Treat Warnings As Errors”(将警告当作错误对待)选项。我们把该项该为NO即可。即把相应命令行的"/WX"改为"/W"。

         相应的编译选项如下:(参考MSDN)

         /w    禁止所有警告 

         /Wn   指定显示的最高等级警告。有效等级是0~4。0级禁止所有警告。4级显示所有警告。

         /Wall 使能所有警告。

         /WX   视所有警告为错误。

         /wln  将某个指定警告视为某个级别。第一个参数是新的级别,第二个参数是警告号码。例如/w14326 使 C4326成为1级警告。

         /wdn  禁止某特定警告。n是警告号。例如, /wd4326 禁止C4326警告。

         /wen  将某个指定警告视为错误。n是警告号。例如, /we4326 把 C4326 视为错误。

         /won  某警告仅仅报告一次。例如:wo4326使C4326仅仅报告一次。

继续阅读