StoneのBLOG

生活这种事情,从来都是自我陶醉

0%

UE4:Error_Message整理

整理在学习UE4的过程中遇到的一些BUG。

UE4中遇见的报错

旨在记录UE4学习过程中遇见的各种报错。

class关键字的使用

syntax error:missing ';' before '*' 这样完全不知到为什么的报错。

参考链接:

加了一个关键字class就解决了。

在UE4C++里面,ForwardDeclaration是非常常见的,要铭记于心才行。
关于ForwardDeclaration:

bUsedWithInstancedStaticMeshes

时间太过于久远再加上自己的懒惰,这个错误到底是在说什么我也不清楚了。

LogMaterial: Warning: Material /Game/MagicCircle/Materials/MT_Smoke.MT_Smoke missing bUsedWithInstancedStaticMeshes=True! Default Material will be used in game.

包含头文件的问题

就像下面的信息描述的,我使用了一个TWeakObjectPtr来进行值的初始化,于是便报错了,各种调查结果显示,是赋值的值的类型的头文件没有好好的包含进去,以至于找不到该类型。

error C2664: 'FWeakObjectPtr &FWeakObjectPtr::operator =(const FWeakObjectPtr &)': cannot convert argument 1 from 'T *' to 'const UObject *'

Error description

参考的链接:TWeakObjectPtr with Custom Character Class

error C2440: 'initializing' : cannot convert from 'initializer-list'

关于这个错误类型,涉及到一些初始化操作,但我的情况下还是头文件没有包含进去的问题,真是头大。

unresolved eternal symbol类型

有的时候会在错误信息中包含上述关键词的错误

error Link2019: unresolved external symbol 函数名 这样的错误是找到了函数的声明但是却找不到函数的定义。

一般需要检查Build.cs文件中的依赖项是否添加。

亦或者出现在利用另一个Module中的函数的时候,找不到函数的实现,出现上面的错误编译不通过。实际上调用的函数是虚函数的话就没有问题,关键是不是虚函数的情况。

所以问我怎么办我也不太清楚,这一部分好好参考如何添加Module或者ActionRPG的LoadScreen部分的源码好好实现应该就没有问题了。

蓝图的编译错误

Can’t parse default value ‘none’ for ...这样的错误,发生在变量的地方,一把都是Array的情况,就是明明没有问题,编译就是通不过。

搜了一下发现UE4.26版本会经常出现这个问题,我也的确用的就是UE4.26。解决方案就是:

  • 向这个Array里添加一个元素
  • 移除这个元素
  • 再编译保存,编译错误就会消失

出现这个问题的原因:

It has kept the original value of “none” instead of updating it to be an “Empty Array”

To fix you need to modify the default value and save.

参考资料:

别人的劳动成果

另外贴一个别人整理的一些报错的文章