2012-03-22 295 views
19

我以前使用VS2008 express和win SDK編譯爲x64。最近重建了我的機器(升級到64位Windows 7)並獲得了最新的快速安裝。遵循相同的程序,以允許x64目標和我的來源不再鏈接。 不管我做什麼,我總是得到:visual studio 2010 express + win sdk =無法打開輸入文件'kernel32.lib'

LINK:致命錯誤LNK1181:無法打開輸入文件「KERNEL32.LIB」

滑稽足夠32位彙編工作正常。

這是一個很好的問題嗎?谷歌沒有給我任何線索如何解決這個問題,只是提到了幾個同樣的問題,但沒有解決方案。

是否有可能使用VS 2010與勝利7 SDK目標64位?

感謝 帕維爾

回答

26

的解決方案是在最後死容易。訣竅是指出VS贏得SDK,由於某種原因在我的情況下是不正確的。 Project Properties -> VC++ Directories -> Library Directories應該指向C:\Program Files\Microsoft SDKs\Windows\v7.1\Lib\x64

+4

你是我最喜歡的人在這個世界上。 :-) – kmort 2015-04-08 19:33:04

10

我發現的其他東西也很簡單,就是轉到Project Properties-> General並將Platform Toolset設置爲Windows7.1SDK。想知道爲什麼這個工程...

+0

我在通用下面看不到「平臺工具集」 - 我只看到「輸出目錄」,「中間目錄」,「配置類型」,「公共語言運行時支持」和「生成日誌文件」。不過pawel的答案適用於我。 – meowsqueak 2013-01-23 00:07:51

+0

從VS 2013社區升級到2017社區時,此答案適用於我社區 – 2017-04-27 10:26:16

2

我有同樣的問題,這裏的答案幫助我,但我不得不做更多的事情。

有些東西損壞了我的Windows SDK安裝,所以我錯過了進入C:\ Program Files \ Microsoft SDKs \ Windows \ v7.1 \ Lib \的所有.lib文件(x64文件夾內沒有問題)。所以我跟着說的here並重新安裝它。比我可以將平臺工具集設置爲Windows7.1SDK(在VS2010和VS2013中)。

這是因爲Platform Toolset更改Visual Studio中的$(WindowsSdkDir)路徑(保存在系統註冊表中的那些路徑),如果找不到Kernel32.lib,則該路徑會中斷。

+1

感謝您編輯@Matthieu。 我試過的其他東西是安裝VS2010 Express,這樣我就可以將Platform Toolset設置爲VS100而不是Windows7.1SDK - 這也適用於我。我這樣做是因爲我的團隊中的其他人正在使用此設置,並且我們希望稍後避免衝突。 – 2015-05-19 22:10:35

0

FWIW,當整個v8.1 SDK安裝(files + reg鍵)變爲AWOL時,我遇到了與Visual Studio 2013相同的問題,可能是由安裝Emborlandero RAD Studio引起的。

設置WindowsSdkDir環境變量有沒有影響,因爲這兩個工作室本身(devenv.exe,環境通過Process Explorer的檢查),並從vcvarsall.bat稱爲批處理文件稱爲批處理文件刪除有效的變量,因爲他們無法找到V8。 1 SDK。

Visual Studio不允許以機器範圍的方式配置特定於機器的目錄(建議將此機器依賴項放到每個項目文件中都是荒謬可笑的),並重新安裝v8.1 SDK無法及時完成。速戰速決拿到工作室在此期間再次合作是具有相同的內容作爲其表弟V8.0下

Software/Microsoft/Microsoft SDKs/Windows/v8.1/ 

添加字符串值InstallationFolder。這是在之下,但普通HKLMHKCU也應該工作。

這使Studio再次立即工作,甚至沒有重新啓動。

1

如果以上解決方案均無效。停止並做一次完整性檢查。我被燒燬使用錯誤的-G配置字符串,它給了我這個誤導性的錯誤。

首先,從VS命令提示符運行,而不是常規命令提示符。你可以找到它在 Start Menu -> Visual Studio 2015 -> MSBuild Command Prompt for VS2015

這一切的正確路徑設置到VS工具等

現在看到的發電機可從cmake的...

cmake -help

...<snip>... The following generators are available on this platform: Visual Studio 15 [arch] = Generates Visual Studio 15 project files. Optional [arch] can be "Win64" or "ARM". Visual Studio 14 2015 [arch] = Generates Visual Studio 2015 project files. Optional [arch] can be "Win64" or "ARM". Visual Studio 12 2013 [arch] = Generates Visual Studio 2013 project files. Optional [arch] can be "Win64" or "ARM". Visual Studio 11 2012 [arch] = Generates Visual Studio 2012 project files. Optional [arch] can be "Win64" or "ARM". Visual Studio 10 2010 [arch] = Generates Visual Studio 2010 project files. Optional [arch] can be "Win64" or "IA64". ...

然後選擇合適的字符串添加拱門。

mkdir _build cd _build cmake .. -G "Visual Studio 15 Win64"

在子目錄中運行的cmake可以更容易地做一個「乾淨」的,因爲你可以刪除這個目錄中的一切。

我升級到Visual Studio 15,但沒有注意,並試圖在2012年生成。

相關問題