2010-10-13 271 views
2

我安裝了VS2010,但發現intellisense無法正常工作。我看着網絡,發現我不是唯一一個遇到這個問題的人。所以,我安裝了VS2008,一切都很好。然後,我決定清理我的電腦,並刪除VS2010,並立即開始在我的程序(新的和舊的)上得到這個錯誤。即使是一個簡單的測試程序,它只有一個cout命令。我試圖修復VS2008,並沒有工作,所以我試圖卸載,然後重新安裝,仍然我得到同樣的問題。LNK1104:無法打開文件'kernel32.lib'

我已經在網上查找這個問題,雖然我發現很多其他人遇到這個問題,它是不一樣的。他們有其他外部引用的問題,而不是那些應該自動包含像kernel32和lib32等。

我也嘗試瞭解決方案,爲其他引用的一些人工作,我包括路徑(有和沒有引號),我KERNEL32目錄,但我仍然得到了同樣的問題,或者在某些情況下,我會得到

LNK1104:無法打開文件「C:\ WINDOWS \ system32.obj」

有和沒有引號鏈接器配置。

任何人都可以請幫忙嗎?

回答

0

我包括路徑(帶和不帶引號),以我的KERNEL32目錄

它看起來像你指着C:\Windows\System32這哪裏是DLL可能,但是這不是其中的.lib文件會。

在VS 2010中,它可能類似的地方:

C:\Program Files\Microsoft SDKs\Windows\v7.0A\Lib 

我沒有準備好進入VS2008說得清KERNEL32.LIB會直接默認該產品安裝。

+0

好的,這樣做更有意義,但我嘗試過,並且我得到的錯誤現在只顯示LNK1104:無法打開文件'C:\ Program Files \ Microsoft SDKs \ windows \ v5.0 \ lib.obj'我只有v6.0A,並且沒有lib目錄,只有一個bin – Geoff 2010-10-13 19:05:00

1

我認爲你正在尋找的選項是-MT而不是-MD。我遇到了同樣的問題。你會注意到,當你使用這個選項時,DLL的大小要大得多(包括依賴關係)

0

如果有人再次想到這個,我找到了適合我的解決方案。

在我的情況下,來自Win 7和/或防病毒排序軟件的UAC拒絕訪問kernel32.lib。作爲管理員啓動VS 2008後,爲項目文件夾停用了病毒掃描。

0

我有這個問題,只是解決了它。我安裝了SDK,但是,VCVARS32.bat找不到SDK,因此它默認爲不存在的路徑(安裝了VS2008)。我強制這通過修改VCVARS32.bat(「C:\ Program Files文件(x86)\ Microsoft Visual Studio 9.0 \ Common7 \ Tools \ vsvars32.bat」,見13行):

11: @call :GetWindowsSdkDir
12:
*13: @SET WindowsSdkDir=C:\Program Files\Microsoft SDKs\Windows\v6.0A\
14:
15: @if not "%WindowsSdkDir%" == "" (

我不得不這樣做,因爲我安裝了VS2008,VS2010和VS2012,因爲我們大多數人可能會這樣做,他們必須跨多個團隊支持多個項目,因此更新全球任何東西(如實際的環境路徑)都可能導致混合使用SDK版本。

相關問題