UE5模块化C++编译出现LNK2019/LNK2001未解析外部符号错误
UE5多模块编译LNK2019错误排查:FBodyData默认构造函数未解析
项目基础信息
- 基于Unreal Engine 5开发多模块项目,涉及
CelBody和OrbitSuite两个核心模块 - 模块结构严格遵循Epic官方规范:Private目录存放
.cpp实现文件,Public目录存放.h头文件 OrbitSuite作为CelBody的私有依赖存在,ACelBodyActor类的成员属性BodyData类型为OrbitSuite模块定义的FBodyData结构体- 两个模块位于项目同一源码目录下,头文件引用路径拼写正确,IntelliSense未提示任何头文件缺失或成员未解析的语法问题
CelBody.Build.cs中已将OrbitSuite添加至PrivateDependencyModuleNames列表,该配置自上次编译成功后未做修改
编译错误详情
LNK2019: unresolved external symbol "public: __cdecl FBodyData::FBodyData(void)" (??0FBodyData@@QEAA@XZ) referenced in function "public: __cdecl ACelBody::ACelBody(class FVTableHelper &)" (??0ACelBody@@QEAA@AEAVFVTableHelper@@@Z)
已完成的排查动作
- 明确LNK2019错误本质:头文件中已声明
FBodyData的默认构造函数,但链接器无法找到对应的实现代码 - 由于
ACelBody的成员BodyData会在Actor初始化时触发默认构造调用,已反复核对BodyData.h(声明)和BodyData.cpp(实现),确认默认构造函数的语法、签名完全匹配,无遗漏或错误
待补充信息说明
目前暂未定位到错误根源,若需要项目编译日志、详细模块文件结构或FBodyData/ACelBody的具体实现代码,可提供相关补充内容。
内容的提问来源于stack exchange,提问作者Liam Dwyer
相关产品推荐
相关产品推荐

