You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

UE5.3空白C++项目遇编译错误,求非仅构建的解决方案

UE5.3 自定义ABaseCharacter类编译错误解决方案(E0070、E1455)

针对E0070:incomplete type is not allowed(StringView.h 第408、415行)

这类错误本质是类型未被完整定义,常见于头文件依赖缺失或项目缓存异常,可按以下步骤排查:

  • 补全必要头文件:确保BaseCharacter.h开头包含核心头文件:
    #include "CoreMinimal.h"
    #include "GameFramework/Character.h"
    #include "BaseCharacter.generated.h"
    
    若代码中用到字符串视图相关操作,额外添加#include "Misc/StringView.h"。
  • 检查模块依赖:打开项目的SampleShooter.Build.cs,确认PrivateDependencyModuleNames包含必要模块:
    PrivateDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore" });
    
  • 清理缓存并重新生成项目:删除项目目录下的Binaries、Intermediate、Saved文件夹,右键.uproject文件选择Generate Visual Studio Project Files,重新打开项目编译。

针对E1455:member function declared with ‘override’ does not override a base class member(ArchiveProxy.h 第157、167行)

该错误多为VS IntelliSense缓存误报或自定义类的override函数签名不匹配,解决方案如下:

  • 验证override函数签名:检查ABaseCharacter中所有带override关键字的函数,确保与基类ACharacter的签名完全一致。例如:
    // 正确示例:与ACharacter基类签名匹配
    virtual void Tick(float DeltaTime) override;
    virtual void SetupPlayerInputComponent(UInputComponent* PlayerInputComponent) override;
    
    注意参数的修饰符、类型,返回值是否与基类完全一致,避免因细微差异导致的编译/智能感知错误。
  • 重置VS IntelliSense缓存:关闭Visual Studio,删除项目目录下的隐藏.vs文件夹,重新打开项目后执行项目 → Rescan Solution操作。
  • 强制包含核心头文件:在项目属性的C/C++ → Advanced → Force Includes中添加$(EngineDir)\Source\Runtime\Core\Public\CoreMinimal.h,确保引擎核心类型被正确识别。

通用排查要点

  • 确认使用的是UE5.3官方正式版,避免使用第三方修改的引擎分支。
  • 检查ABaseCharacter的类声明是否正确继承自ACharacter,且UCLASS()、GENERATED_BODY()宏无遗漏。

内容的提问来源于stack exchange,提问作者McAfee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 07:02:22