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但是还是出问题

然后别人也回,看起来没修复。。还是莫名喜感的

 

 

 

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