错误1
- 找不到头文件typeinfo
使用 Visual Studio 2019 编译 UE4.24源码时报错,PhysX库编译不通过,具体报错信息为:
1 | "D:\UnrealEngine\Engine\Source\ThirdParty\PhysX3\PxShared\src\foundation\include\PsAllocator.h": |
对于此类报错,Microsoft开发者回复是MSVC14.23版本移除了typeinfo.h,改用
解决方案
- 修改引擎配置文件
使用VS2019的Installer,安装MSVC4.23版本以前的运行库,如MSVC14.22.27905。
修改UE4源码的配置文件:
"D:\UnrealEngine\Engine\Saved\UnrealBuildTool\BuildConfiguration.xml"
添加以下代码:
1 | <WindowsPlatform> |
最后BuildConfiguration.xml如下:
1 |
|
- Generate后编译即可。
错误2
- error C4800
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.26.28801\INCLUDE\comip.h(311): error C4800
解决方案
- 修改引擎源码
cs文件: .\Engine\Source\Programs\UnrealBuildTool\Platform\Windows\VCToolChain.cs
第514行之后加一句 Arguments.Add("/wd4800");
1 | void AppendCLArguments_CPP(CppCompileEnvironment CompileEnvironment, List<string> Arguments) |
最后Generate后编译即可。
参考链接
UE4源码编译错误处理,error MSB3075,error C4800