UE4.26.2中构造函数创建UWidgetComponent出现LNK2019链接错误的解决方法咨询
解决UE4.26.2中Actor构造函数创建UWidgetComponent的LNK2019链接错误
这个LNK2019链接错误的核心原因很明确:你的项目没有显式依赖UMG模块。UWidgetComponent是UMG模块下的组件类,默认新建的UE4项目不会自动包含这个模块,所以链接器找不到它的类定义相关符号。
具体解决步骤:
- 定位到你项目的
Build.cs文件,路径通常是Source/TestProject/TestProject.Build.cs(替换成你的实际项目名) - 打开该文件,找到
PublicDependencyModuleNames或PrivateDependencyModuleNames的数组,将"UMG"添加进去。修改后的代码示例如下:
using UnrealBuildTool; public class TestProject : ModuleRules { public TestProject(ReadOnlyTargetRules Target) : base(Target) { PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs; PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "UMG" }); PrivateDependencyModuleNames.AddRange(new string[] { }); // 保留你原有的其他配置代码 } }
- 保存文件后,回到Unreal Editor,执行File -> Refresh Visual Studio Project(或者直接重启编辑器)
- 重新编译项目,这个链接错误就会被修复。
额外说明:
你的代码本身没有问题——不管是用CreateDefaultSubobject<UWidgetComponent>创建组件,还是头文件里的UPROPERTY声明都符合UE4的规范。问题完全出在项目模块依赖的配置上,UE4的模块系统要求必须显式声明你用到的非默认模块,否则链接阶段就会找不到对应的符号引用。
内容的提问来源于stack exchange,提问作者Mark
相关产品推荐
相关产品推荐

