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

Unreal .uproject中AdditionalDependencies字段含义与作用

Unreal Engine .uproject 中 AdditionalDependencies 字段说明

字段配置项类型

Modules配置节下的AdditionalDependencies字段内的配置项既不是常规业务模块,也不是插件,是Unreal Build Tool(UBT,UE的专属构建工具)可识别的构建目标名,属于非常底层的构建配置项,普通业务开发几乎不会用到。

注意不要把这个字段和.Build.cs文件内的同名AdditionalDependencies字段混淆,后者是用来配置当前模块需要链接的外部静态库、动态库文件路径的,二者作用完全不同。

声明依赖的实际作用

如果在模块A的该字段下填入"B",唯一的实际效果是:UBT编排构建任务顺序时,会强制等待名为"B"的构建目标完全构建完成后,才会启动模块A的编译流程。

这个配置不会产生任何编译、链接、运行时层面的关联效果:

  • 不会把B的头文件目录加入A的include搜索路径,A的代码里直接include B的头文件会报找不到文件的错误
  • 不会把B的二进制产物加入A的链接输入列表,代码里直接调用B的接口会报链接符号不存在的错误
  • 不会在游戏启动、打包时配置B的自动加载逻辑,运行时不会主动加载B模块

你给出的示例配置,除了调整A和B的构建先后顺序,不会对代码编写、链接、运行逻辑产生任何影响。很多新手会误以为这个字段可以替代.Build.cs里的依赖配置,实际上在这里填常规模块名除了降低构建并行度、调整构建顺序外没有任何实际作用,日常开发不要随意修改这个字段。

"Modules":[
{
  "Name":"A",
  ...
  "AdditionalDependencies":[
    "B"
  ]
},
...
]

与.Build.cs中依赖配置的差异

.uproject中AdditionalDependencies声明的依赖,和模块对应.Build.cs文件里的PublicDependencyModuleNames/PrivateDependencyModuleNames声明的依赖有本质区别,核心差异如下:

  • 依赖强度不同
    • .Build.cs中的依赖是编译链接运行全链路强依赖:UBT会自动处理头文件搜索路径、二进制链接、运行时/打包时的模块自动加载;其中PublicDependencyModuleNames声明的依赖还会把相关属性透传给所有依赖当前模块的其他模块,PrivateDependencyModuleNames的依赖仅对当前模块内部可见。
    • AdditionalDependencies是仅构建顺序层面的弱依赖:除了保证构建先后顺序,不会添加任何编译、链接、运行时的关联逻辑,也不会对其他依赖当前模块的目标产生任何影响。
  • 适用场景不同
    • .Build.cs中的依赖是日常C++模块开发配置跨模块引用的标准方式,所有业务层、插件层的模块互相引用都应该在这里配置。
    • AdditionalDependencies仅用于引擎底层开发、自定义构建扩展场景,比如需要在模块编译前完成非UE标准的资源预处理、自定义静态库/动态库的独立构建、特殊构建步骤执行等场景,才需要配置这个字段。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 02:36:09