【发布时间】:2011-05-13 06:20:49
【问题描述】:
我有一个名为Temp.cpp 的小文件:
#include <string>
int main() { return 0; }
我正在尝试使用 WDK 7.1 在 Windows XP Free Build Environment 中使用以下命令行对其进行编译:
cl.exe /Iinc\api\crt\stl70 /Iinc\crt C:\Temp.cpp
我遇到了非常随机的错误,例如:
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 15.00.30729.207 for 80x86
C:\WinDDK\7600.16385.1\inc\api\crt\stl70\iosfwd(202) :
error C2144: syntax error : 'int' should be preceded by ';'
如果我使用stl60 而不是stl70,错误就会消失,但这并不能解决问题。
问题的原因是什么?
更新:我尝试再次卸载和安装 WDK,但没有任何改变。 :(
更新 2: 好的,显然错误在头文件本身大喊:_SCL_INSECURE_DEPRECATE 是原因。有人知道如何正确关闭它吗? (如果我只是注释掉这些行,我会收到关于一堆其他宏的更多错误。)
【问题讨论】:
-
有趣的是,我尝试搜索
WDK stl70 errors并猜测在谷歌中排名第一的内容是什么……这该死的东西每天都变得越来越快。 o_O -
@Xeo: 哈哈,是的,这真是个野兽 :)
-
VC 7.0 是有史以来最糟糕的编译器之一。 :-( 当前版本是 10.0 SP1。
-
不确定实际的问题是什么,但你不是必须在
main中有return吗? -
@Andrey:你不需要在 C++ 中的
main()中使用return。
标签: c++ winapi windows-7 stl wdk