visual studio 2019 编译UE4 错误:error C4541: “dynamic_cast”用在了带 /GR- 的多态类型“***”上;可能导致不可预知的行为的解决办法
原因
- 使用dynamic_cast<> 会用到RTTI技术,因此须要启动“执行时类型信息”这一选项。/GR-表示关闭RTTI技术,/GR表示打开RTTI技术
- UE4 默认是关闭RTTI的
解决办法
-
在vs2019中打开项目属性->C/C+±>语言,在右侧“启用运行时类型信息”项,选择“是/GR”,如图所示
-
UE4 默认是关闭RTTI的,如果要使用dynamic_cast,需要在build.cs中启用rtti;如图