如何在Unreal Engine中使用Eigen库并解决头文件找不到报错
UE4 插件使用内置Eigen库头文件找不到问题解决方案
问题复现
已在插件Build.cs中添加Eigen依赖,源文件使用#include <Eigen/Dense>引入头文件时触发报错:
fatal error: 'Eigen/Dense' file not found
所有#include <Eigen/xxx>格式的引入均触发同类错误。
排查修复步骤
第一步:确认Eigen依赖添加位置、拼写正确
依赖必须添加到对应插件的.Build.cs文件中,而非项目全局的Build.cs,拼写严格区分大小写,示例配置:public class YourPluginName : ModuleRules { public YourPluginName(ReadOnlyTargetRules Target) : base(Target) { PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs; PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", // 正确添加Eigen依赖 "Eigen" }); } }第二步:手动补充Eigen头文件包含路径(适配低版本UE4)
部分UE4小版本(4.25及更早)的Eigen模块未默认暴露上层头文件目录,可在Build.cs中手动添加包含路径:// 放在Build.cs构造函数内即可 string EigenRootPath = Path.Combine(Target.UEThirdPartySourceDirectory, "Eigen"); PublicIncludePaths.Add(EigenRootPath);第三步:清理缓存重新生成项目
关闭UE编辑器,删除以下目录后右键.uproject文件重新生成VS项目,再重新编译:- 项目根目录下的
Binaries、Intermediate文件夹 - 插件目录下的
Binaries、Intermediate文件夹
- 项目根目录下的
第四步:排查预编译头干扰
若仍报错可临时关闭插件私有预编译头验证,在Build.cs中添加:PCHUsage = PCHUsageMode.NoPCHs;编译通过后再按需恢复PCH配置即可。
内容的提问来源于stack exchange,提问作者pengquynh
相关产品推荐
相关产品推荐

