新系統裝vs2015遇到的坑

2021-08-25 14:07:46 字數 2029 閱讀 1648

一開始因為新加的系統盤是固態硬碟,磁碟io會快,就提取到了c盤,擔心到許可權問題,還特地用管理員身份啟動安裝exe,還是會不停彈框讓指定檔案。

沒招,只能重新提取檔案到別的盤,順利裝完。

因為之前跳過幾次,所以還用了「修復」把之前跳過安裝的包重新指定下,vs2015安裝完畢。

編譯程式發現報一堆跟vs相關的錯,因為之前遇到過vs系統檔案被篡改的情況,下意識檢查指定目錄下有沒有對應檔案,以及檔案內容是否有問題,檔案都存在。於是新建乙個mfc工程,看能否編譯成功,發現報錯:

c:\program files (x86)\microsoft visual studio 14.0\vc\atlmfc\include\afx.h(78): fatal error c1083: 無法開啟包括檔案: 「new.h」: no such file or directory

10150

.0\ucrt

而vs專案配置中的vc++包含目錄配置的是c:\program files (x86)\windows kits\10\include\10.0.

10240

.0\ucrt

注意到150和240的不同!

先用手動新增包含目錄的方法試驗下是不是這個問題

參考:改完後編譯通過,確定問題。但我的專案中那麼多解決方案,不可能乙個個手動這樣修改,只能繼續尋求怎麼一次解決後續無憂的解決方案。

發現vs2015中 工具-選項-專案和解決方案-vc++目錄 已被禁用,都是建議在專案屬性中修改的方式,可那些環境變數,比如$(vc_includepath) $(windowsdk_includepath) 都是從父級或專案預設設定繼承的,從vs2015視覺化介面上根本找不到地方修改這些巨集。我的目的很明確,就是要修改$(vc_includepath)中ucrt的目錄資料夾,那只可能在某些配置檔案中。

參考文章1:為visual studio新增預設include包含路徑一勞永逸的方法(更新)

參考文章2:vs2015找不到stdio.h或new.h的bug修復

檔案一:「vs安裝目錄中的\vc\vcwizards\default.vcxproj 」

例如我的目錄是「c:\program files (x86)\microsoft visual studio 14.0\vc\vcwizards\default.vcxproj」

參考文章1 說明了檔案一和檔案二之間的關係,以及對vs編譯的影像。建議先讀。

參考文章2和3都是引導修改檔案二,可是我系統裡的檔案二開啟與他們的不盡相同,只有

<?xml version="1.0" encoding="utf-8"?> 

並沒有下面的

再加上這裡太多的預設巨集

並且不同人加的內容還不一樣,不敢貿然改。

更重要的原因是,我感覺他們是往vs裡新增額外的包含目錄,而我要修改的是預設預設的windows kits目錄,還不是完全一樣。

where is windowssdk_includepath defined?

有了前面中文文章的基礎,再看這個很容易過濾掉重複的回答,直到看到這個回答

就是它了!迫切開啟 c:\program files (x86)\msbuild\microsoft.cpp\v4.0\v140下的microsoft.cpp.common.props檔案,

c:\program files (x86)\windows kits\10\include\10.0.10150.0\ucrt

編譯通過!再編譯我的專案解決方案,全部編譯成功,太棒了!

過程艱辛,有些實操經驗,比如最後的管理員許可權等等啦,還是記錄下,以備後來之需。

VS2015 配置GDAL庫踩坑記錄

配置環境 win10 vs2015 gdal 2.3.1 一 總步驟 1.編譯gdal 2.安裝gdal 3.vs2015中配置gdal 4 設定環境變數 二 踩坑記錄 問題 gdal編譯後沒有生成bin,include等資料夾 原因 不能只寫nmake f makefile.vc 需要寫成 nma...

鬱悶的vs2015安裝

安裝vs2015,安裝3天,昨天剛剛安裝好,今天就發現不能編譯,一直提示 c program files x86 microsoft visual studio 14.0 vc include crtdefs.h 10 fatal error c1083 cannot open include fi...

VS2015建立鍊錶時使用scanf遇到的問題

建立鍊錶遇到的第乙個問題 使用vs2015寫 錯誤 scanf s d d s p new num,p new score,p new name 此時會報錯 0x7be10b5c ucrtbased.dll 處 位於 鍊錶.exe 中 引發的異常 0xc0000005 寫入位置 0x00511000...