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

VS2019 UE项目属性缺失Linker选项卡如何添加依赖库

Unreal Engine C++项目依赖库正确配置方法

核心原理

Unreal Engine项目的编译、链接全流程由Unreal Build Tool(UBT) 接管,不会读取Visual Studio原生项目属性页的配置,手动在VS里修改VC++ 目录、C/C++附加包含目录、Linker附加依赖项的操作,都会在重新生成VS项目文件时被完全覆盖,这也是UE项目属性页找不到Linker选项卡的根本原因。
所有依赖相关配置都需要通过项目的Build规则文件修改,不需要操作VS属性页。

具体操作步骤

  • 找到模块对应的Build配置文件
    打开项目根目录下的Source文件夹,找到和项目/自定义模块同名的.Build.cs文件,例如项目名为DemoProject时,文件路径为Source/DemoProject/DemoProject.Build.cs,所有编译链接相关配置都在这个文件的构造函数中编写。
  • 配置头文件包含路径(对应原VS配置的附加包含目录)
    根据头文件的使用范围将路径添加到对应配置项:头文件需要被模块外部(其他模块、蓝图暴露代码)引用时添加到PublicIncludePaths,头文件仅在当前模块内部使用时添加到PrivateIncludePaths。
    示例代码:
    // 以项目ThirdParty目录下的第三方库头文件路径为例
    string ThirdPartyIncludePath = Path.Combine(ProjectDir, "ThirdParty/MyLib/include");
    PublicIncludePaths.Add(ThirdPartyIncludePath);
    
  • 配置依赖库链接(对应原VS配置的Linker/Additional Dependencies)
    根据库的类型选择对应配置项:
    • 静态库(.lib)、动态库的导入库(.lib):将库的完整路径添加到PublicAdditionalLibraries;如果是动态库(.dll),还需要通过RuntimeDependencies配置对应dll的路径,让UBT在编译、打包时自动拷贝到正确的运行目录。
      示例代码:
      string MyLibRoot = Path.Combine(ProjectDir, "ThirdParty/MyLib/lib/x64");
      // 区分编译版本加载对应库
      if (Target.Configuration == UnrealTargetConfiguration.Debug)
      {
          PublicAdditionalLibraries.Add(Path.Combine(MyLibRoot, "Debug/MyLib_d.lib"));
          RuntimeDependencies.Add(Path.Combine(MyLibRoot, "Debug/MyLib_d.dll"));
      }
      else
      {
          PublicAdditionalLibraries.Add(Path.Combine(MyLibRoot, "Release/MyLib.lib"));
          RuntimeDependencies.Add(Path.Combine(MyLibRoot, "Release/MyLib.dll"));
      }
      
    • Windows系统自带库(比如user32.lib、gdi32.lib):不需要写完整路径,直接将库名添加到PublicSystemLibraries即可,示例:PublicSystemLibraries.Add("user32.lib");
    • UE引擎内置模块依赖:直接将模块名添加到PublicDependencyModuleNames即可,比如要使用UMG、Slate相关功能,就添加"UMG"、"Slate"、"SlateCore"到列表中。

配置生效方式

修改完.Build.cs文件后,关闭Visual Studio,右键项目根目录下的.uproject文件,选择Generate Visual Studio project files,重新生成完成后再打开项目即可正常编译,所有配置会由UBT自动同步到VS项目中,不需要手动修改VS属性页的任何选项。

参考界面截图

常规C++项目Linker配置界面
图1:常规C++项目原生VS Linker配置入口,UE项目中修改该配置不生效

UE项目属性页无Linker选项卡界面
图2:UE项目VS属性页无Linker选项卡属于正常现象,编译链接流程由UBT接管

C/C++附加包含目录配置界面
图3:原生VS C/C++附加包含目录配置,UE项目下手动修改会被覆盖

VC++目录包含目录配置界面
图4:原生VS VC++目录配置,UE项目下手动修改不生效


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 13:06:24