更新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