For anyone else that runs into this, this is the issue: The original post’s code contained class UIKADestroy_I : public UInterface
and class IDestroy
, and these don’t match. When UHT comes across a UINTERFACE
macro, it replaces the first character of the class name from “U” to “I” to come up with the name of the corresponding interface class that it expects to find. OP received the error because UHT couldn’t find a declaration called IIKADestroy_I
.
The fix in this case would be to rename UIKADestroy_I
to UDestroy
, or to rename IDestroy
to IIKADestroy_I
.
The answer to this assertion is also mentioned here.