WINCE6.0 error C2220: warning treated as error问题解决
今天在编译IMX515的BSP的时候,发现下面的编译错误问题:
BUILD: [00:0000002476:PROGC ] BuildingCOMPILE Pass in F:\WINCE600\PLATFORM\CWIMX515\src\SOC\COMMON_FSL_V2\MS\USBFN\CLASS\cdc\directory.
BUILD: [01:0000002486:PROGC ] Compiling.\usbfncdcdrv.cpp
BUILD: [01:0000002489:ERRORE]F:\WINCE600\public\common\oak\inc\CMthread.h(118) : error C2220: warningtreated as error - no 'object' file generated
warning treated as error 意思是将警告当成错误,这是编译选项的问题,将警告级别设置得高导致的错误。但很奇怪,之前编译这个BSP包的时候并没有这个错误。
下面总结几种解决此为的办法:
⑴修改sources文件
在对应的sources文件增加WARNLEVEL,其中:
WARNLEVEL=0/1/2/3/5/6---都是OK的
WARNLEVEL=4---编译同样的错误
其他值没有验证。
也在sources文件中增加WARNISERROR,其中:
WARNISERROR=0/2/3/4/5/6---都是OK的
WARNISERROR=1---依旧编译出错
其他值没有验证
⑵修改源代码
双击ERRORE的地方,指向下面的代码
m_dwExitCode = -1;其中m_dwExitCode是DWORD类型的。
把上面的代码改为下面的代码就OK:
m_dwExitCode = (DWORD)-1;