幫 vs2019 找回丟失的 SDK

2022-03-26 17:34:33 字數 2144 閱讀 5911

原總結

排錯process monitor

vs2019

sdk前一段時間,有網友遇到乙個奇怪的問題,說他機器上的vs2019編譯c++工程報錯。我當時一聽就有兩個懷疑:

工程設定不對。

vs2019沒裝好。

因為新建乙個最簡單的工程,編譯也報一樣的錯誤,所以可以排除工程設定的問題了。那只有可能是vs2019的問題了。但是具體是**的問題呢?

根據鏈結裡的提示,做過嘗試,沒能解決問題。後來在我們溝通的過程中,他自己解決了問題,這不就是大名鼎鼎的橡皮鴨除錯法嗎?當他的問題解決後,我特意在本地重現了整個過程,做了一些調查,整理成本文,分享給大家。

我用vs2019新建了乙個最簡單的hello world工程,編譯,報錯如下:

更直觀的報錯截圖如下:

既然提示找不到對應版本的sdk,那麼先到工程屬性裡看一下對應的配置。在工程上,右鍵->屬性。在工程屬性對話方塊中選擇configuration properties下的general。在右側檢視windows sdk version的值,確實是10.0.18362.0,如下圖。

工程 sdk version 配置

本地搜一下10.0.18362.0,看看本地是否存在相關的路徑。

everything 搜尋結果

本地也存在相關路徑。能想到的可以懷疑的地方都排除了。接下來請出我們的老朋友 ——process monitor

開啟process monitor,開啟監視,在vs中開始編譯,問題重現後,停止監視。

下面就要進行最重要的步驟了—— 過濾。

使用process monitor快速解決問題的關鍵在於過濾出與問題有關的事件!

我們需要根據什麼條件過濾呢?

一般操作結果是成功的事件對我們幫助不大,所以首先過濾掉resultsuccess的事件。

既然提示的是找不到10.0.18362.0版本的sdk,相關錯誤應該和10.0.18362.0有關,所以只保留path中包含10.0.18362.0的記錄。

沒想到,效果這麼好,只有六條。

其中,有兩條是登錄檔中找不到hklm\software\wow6432node\microsoft\microsoft sdks\windows\v10.0.18362.0(這個登錄檔項不是必須存在的,在能正常編譯的機器上也可能找不到),最後一條是找不到檔案c:\program files (x86)\windows kits\10\include\10.0.18362.0\shared\sdkddkver.h。看來,應該是我本地少了這個檔案。因為我故意把這個檔案重名了,改回來,重新編譯,搞定。

跟這位網友溝通的整個過程特別順暢,省心。他已經根據線索在網上搜尋了相關資料,自己摸索了一番。懷疑**有問題,立刻能檢視相關的配置進行排查。最後,在溝通的過程中,他自己就把問題解決了。原來,他在前幾天把一些檔案的位置給改了,改回來就好了。後來聊天得知,他才大二,後生可畏!

在幫網友解決問題的過程中,我扮演的角色其實類似 「橡皮鴨」。也希望大家遇到問題時,把問題描述給周圍的人,也許自己就知道問題出在哪了。屢試不爽!

graphics h在VS2019中的使用

visual studio 執行圖形介面是缺少 graphics.h 標頭檔案 方式2 找到本機visual studio 安裝目錄下的 include lib目錄,將解壓後的這兩個檔案內容相對應的拷貝過去。我的電腦預設安裝,這兩個目錄是在這裡 c program files x86 microso...

找回VS新建項中丟失的模板

解決方法 1。開啟資料夾。目錄為 c vs2008 common7 ide projecttemplates csharp windows。我的vs是安裝在c盤。如果你的安裝在其它盤裡,尋找到相應的根目錄就行了。在windows資料夾裡我們可以看到乙個2052資料夾。開啟這個資料夾,將裡面所有的壓縮...

VS2019中如何配置SFML的案例

vs2019中如何配置sfml的案例 一.版本說明 本人用的sfml的版本是sfml2.5.1 解壓後安裝,本文示例目錄為d thirdlib sfml 2.3.2。本人使用的是visual studio 2019的社群版 二.配置環境步驟 1.新建乙個c 空專案 新建空專案 2.右擊開啟屬性一欄 ...