You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Unreal Engine导入AWS库时出现链接器错误求助

UE5.5.4集成AWS Cognito:模块加载失败与链接错误排查方案

一、模块加载失败(无法加载'AwakeningPlayer')排查

  • 严格匹配库的架构与编译模式:UE5.5.4默认使用64位编译,你的Cognito库必须对应Win64架构,且Debug/Development/Shipping版本要和项目当前编译模式完全一致,禁止混用Debug和Release库。
  • 确认插件配置正确性:在项目Config/DefaultEngine.ini中检查AWS插件是否正确启用,模块名大小写敏感:
    [Plugins]
    EnabledPlugins+=AWSCore
    EnabledPlugins+=AWSCognitoIdentityProvider
    
  • 核对.Build.cs模块依赖拼写:确保PublicDependencyModuleNames中添加的AWS模块名称完全正确,比如是AWSCognitoIdentityProvider而非简写或错写。

二、链接器错误(LNK2019/LNK2001/LNK1120)的额外处理步骤

除了添加模块到PublicDependencyModuleNames,这些步骤容易被忽略:

  • 手动配置库路径与导入库:若Cognito库为手动导入(非UE官方插件),在.Build.cs中添加库搜索路径与具体库文件,区分编译模式:
    // 指向第三方库的lib目录
    PublicLibraryPaths.Add(Path.Combine(ModuleDirectory, "ThirdParty", "AWSCognito", "Lib"));
    
    // 根据编译模式加载对应库
    if (Target.Configuration == UnrealTargetConfiguration.Debug)
    {
        PublicAdditionalLibraries.Add("AWSCognitoDebug.lib");
    }
    else
    {
        PublicAdditionalLibraries.Add("AWSCognitoRelease.lib");
    }
    
  • 部署运行时DLL:UE运行时需要加载对应DLL,可直接将DLL放入项目Binaries/Win64目录,或在.Build.cs中通过RuntimeDependencies自动复制:
    RuntimeDependencies.Add(Path.Combine(ModuleDirectory, "ThirdParty", "AWSCognito", "Bin", "AWSCognito.dll"));
    
  • 适配UE5.5的编译规则变更:UE5.5对第三方库链接逻辑做了更严格的检查,需确保使用的是针对UE5.x预编译的AWS库,而非通用AWS SDK版本。若启用FastBuild,删除项目IntermediateSaved文件夹,清空缓存后重新生成VS项目编译。
  • 确认符号导入导出:LNK2019多因函数符号未找到,检查Cognito库是否正确导出所需函数,或代码中是否用DLL_IMPORT宏正确导入符号(官方UE版AWS库已处理此问题,需确认库版本适配)。
  • 调整模块加载顺序:在.Build.cs中通过PublicDependencyModuleNames确保AWS模块优先于你的AwakeningPlayer模块加载,同时在DefaultEngine.ini中把AWS插件放在自定义模块前启用。

三、通用排查技巧

  • 查看VS输出窗口的详细错误:UE弹出的模块加载提示信息有限,打开Visual Studio的输出窗口,筛选"错误"类别,获取具体缺失的DLL或符号名称。
  • 最小化测试:创建空白UE5.5项目,仅集成Cognito的最小功能代码,验证是否能正常运行,排除原项目的配置污染问题。
  • 匹配Windows SDK版本:UE5.5默认使用Windows 10 SDK 10.0.22621.0,确认AWS库编译时使用的SDK版本与之一致,避免因SDK版本差异导致链接错误。

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

火山引擎 最新活动