UE4導入插件後編譯無法通過,提示缺少typeinfo.h的坑。(VS2019踩坑記錄)

先說結論,VS有時候不用急着更新最新版本,包括工具也是,都是坑,再出問題我換17用了。

 

參考鏈接:

http://papalqi.cn/201910/cid=406.html

https://developercommunity.visualstudio.com/content/problem/734566/msvc-142328019-is-missing-include-typeinfoh.html

(不想聽我絮絮叨叨直接看鏈接,或者直接跳到最後看解決方案即可)

 

環境:Win10,VS2019最新版16.3.7,MSVC版本是14.23.28019

 

踩坑記錄:

最新項目使用UE4開發,爲了效果新加了apex插件,打開UE4的時候提示要重新編譯

 

決定用VS編譯

因爲可能後續會改到UE4源碼,所以當時源碼都載在項目同級文件夾裏,所以首先如下設置下:

如果很快就生成完畢,但是還是啓動不了的話,第三步改爲右鍵-重新生成

 

然後就是漫長的編譯過程 

 

編譯到一半吧就該報錯了

 

很明顯是缺少了文件,再定位到具體行

 

是屬於UE4的PhysX庫的,這個文件無法編譯通過,查詢資料發現,最新版的VS2019,安裝時自帶的MSVC14.23,居然把這個用了很久的typeinfo.h直接刪了,官方人員給的解釋是,感覺沒什麼人用,直接移除了,後續改用<typeinfo>就得了

暈倒

論壇裏的很多外國人說你這個小版本更新,把14.22改到14.23,居然搞了這突破性變化,連標準庫都刪,搞的一堆人運UE4有問題,有毒吧。

 

開發者有點不好意思,說我的鍋我的鍋,然後補充說明進文檔了

https://docs.microsoft.com/en-us/cpp/overview/cpp-conformance-improvements?view=vs-2019#standard-library-improvements-1

給出的解決方案是,把代碼裏typeinfo.h換成typeinfo

然後還有人給出解決方案是,把以前的MSVC版本里的typeinfo.h的文件加到工具集裏面去。

 

然而我兩種方法都試了,也向同事要了typeinfo.h文件,換了之後重新編譯,又有一個LogUnrealMathTest.cpp failing的bug

提示UE4觸發了斷點,打開界面的時候卡在79%。

 

無奈關閉。坑真多。

 

然後吧,項目裏其他同學都是用VS2017進行開發,編譯這個基本不會出問題。

我剛好那時有19安裝包就裝了19,同時也想着微軟基本都是向下兼容,後續也不用再更新。

但是還偏偏就出這個問題

主程說你要不然換17吧,19坑這麼多,最新版其實都不用急着用。

但是裝17我電腦可能得更卡了,畢竟公司的電腦重裝系統不方便,要是家裏的電腦我就重裝系統了

現在unity四個版本裝電腦裏,VS也有15 19,再裝個17真的成全家桶了。

 

解決方案:

就想着這個只是運行庫的問題,畢竟14.22不出問題但是14.23出問題,就把MSVC換回去試試得了。

於是就打開vs的installer,點擊修改 - 單個組件,搜索MSVC,載了1.2G資源包,安裝MSVC14.22.27905

然後修改引擎源碼裏的UE4配置文件

<?xml version="1.0" encoding="utf-8" ?>
<Configuration xmlns="https://www.unrealengine.com/BuildConfiguration">
	<WindowsPlatform>
		<CompilerVersion>14.22.27905</CompilerVersion>
	</WindowsPlatform>
</Configuration>

每個人的路徑可能不一樣,可以用everything直接搜文件名,替換裏面內容也可以

 

然後重新編譯

感動,過85%了

最後項目成功打開!踩坑完畢!

 

踩這個坑最搞笑的還是國外開發者也很剛,微軟開發者迴應說你可以這麼這麼做,有人就說那你幹嘛不幫我做了,我用你這最新編譯器還得改代碼,具體可以看最上面的微軟論壇的參考鏈接,還是挺逗的。

 

然後微軟的人也是鴿子,之前一個別的地方就已經出問題了,他們說16.3.7修復,然後我更新了16.3.7但是還是出問題

然後別人也回,看起來沒修復。。還是莫名喜感的

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章