我在 Visual 2008 SP1 中遇到问题。
编译器产生:
'/fp:fast' 和 '/Za' 不兼容
问题是我没有在属性中使用 /Za .. 所以我不明白为什么在未设置选项时会发生冲突。
这是我的项目属性中生成的命令行:
/Od /I "..\..\..\..\..\tools\gsoap-soapcpp-2.7.6\src" /I "..\..\..\..\..\platform\vs2008\win32\gsoap-soapcpp-2.7.6\src"
/D "WIN32" /D "_DEBUG" /D
"_CONSOLE" /D "YY_NO_UNISTD_H" /D "_WIN32_WCE=0x700" /D "UNDER_CE" /D "WINCE" /D
"DEBUG" /D "ARM" /D "_ARM_" /D "_UNICODE" /D "UNICODE" /Gm /EHsc /MTd /fp:fast /GR-
/Fo"Freescale i.MX53 QSB - WEC7 (ARMv4I)\Debug IMX53/" /Fd"Freescale i.MX53 QSB - WEC7
(ARMv4I)\Debug IMX53/vc80.pdb" /W3 /nologo /c /TP /wd4996
如您所见,设置了 /fp:fast 但未设置 /Za。
是否有另一种可能间接引用 /Za 的选项?
在深入挖掘之后,我意识到 BuildLog.htm 文件在说:
Creating temporary file "(...)\Freescale i.MX53 QSB - WEC7 (ARMv4I)\Debug IMX53\RSP00000341365424.rsp" with content
[{CORRECT COMMAND LINE}
{list of source files paths}
]
Creating command line "cl.exe @"(...)\Freescale i.MX53 QSB - WEC7 (ARMv4I)\Debug IMX53\RSP00000341365424.rsp" /nologo"
Creating temporary file "(...)\Freescale i.MX53 QSB - WEC7 (ARMv4I)\Debug IMX53\RSP00000441365424.rsp" with content
[
{WRONG COMMAND LINE containing /Za}
{list of source files paths}
]
Creating command line "cl.exe @"(...)\Freescale i.MX53 QSB - WEC7 (ARMv4I)\Debug IMX53\RSP00000441365424.rsp"/nologo"
您知道为什么会创建第二个临时文件吗?我的项目中是否有我必须修复的属性?
[编辑] 感谢汉斯,我找到了问题所在。我在项目中的一个文件有一个不同的编译器选项,我不知道是哪个导致了问题。由于 buildlog.htm 文件,我找到了它是哪一个