更新vs2008到sp1导致的控制台编译无法找到windows.h
发现毛病:
先前安装了vs2008,但没有更新为sp1,后来安装了sp1.某天想在控制台使用cl.exe进行编译运行。但总提醒找不到windows.h.
"fatal error C1083: Cannot open include file: 'windows.h ': No such file or directory ",我就纳闷了,在vs2008编译运行一切OK的啊。
包含windows.h文件的目录:
C:\Program Files\Microsoft SDKs\Windows\v6.0A这个目录里该有的都有了,但是 C:\Program Files\Microsoft SDKs\Windows\v6.1是空的。
原因是:cl编译未指向C:\Program Files\Microsoft SDKs\Windows\v6.0A,莫非指向的是v6.1(因为这个是空的,所以导致无法找到?)
解决试探1:
对vc++目录设置
可执行文件:加入C:/Program Files/Microsoft SDKs/Windows/v6.0A/bin
包含文件:加入C:/Program Files/Microsoft SDKs/Windows/v6.0A/include
库文件:加入C:/Program Files/Microsoft SDKs/Windows/v6.0A/lib
到命令行还是失败了!。
解决试探2:
用安装盘修改更新也失败了。
解决试探3(最终成功):
进入vs2008命令提示符:用set命令查看发现WindowsSdkDir=C:\Program Files\Microsoft SDKs\Windows\Platform SDK;
我机器上可没有安装Platform SDK这个啊
到C:\Program Files\Microsoft Visual Studio 9.0\Common7\Tools下对vsvars32.bat进行编辑
-----------------------------vsvars32.bat------------------------
“set WindowsSdkDir=C:\Program Files\Microsoft SDKs\Windows\v6.0A\”
---------------------------------------------------------------------
OK ,搞定~
( 备注:SDK即software develope kit(软件开发工具包),它包含了进行Windows软件开发的文档和API函数的输入库、头文件(因为API在动态链接库中,这些动态链接库是系统的组成部分因此不用再提供,而输入库和头文件则必须,这样才能在你的程序中使用API函数)。)
解决方法4:
到这个网址下载安装Platform SDK
http://www.microsoft.com/download/en/search.aspx?q=psdk