为什么空白插件模板可以编译,但第三方库插件模板在具有相同的私有依赖项时却不能编译?

问题描述 投票:0回答:1

我按照本教程:从头开始向插件添加自定义第三方库并成功从头开始创建第三方库插件。本教程基本上解释了第三方库插件模板如何在幕后工作。但是,当我尝试使用第三方库模板本身复制教程的目标时,它会出现一堆丢失文件错误和链接器错误。特别是,我注意到空白模板的 build.cs 文件在私有依赖项中有 CoreUObject、Engine、Slate 和 SlateCore,并且它可以很好地编译它们。但是,在第三方库插件模板中添加这些依赖项会导致一堆链接器错误。

我将文件一一匹配,但我无法找出为什么会发生这种情况。这是一个错误,还是我在某个地方缺少一些链接命令,这些命令是用空白模板而不是第三方模板发出的?

c++ plugins unreal-engine4 unreal-engine5
1个回答
0
投票

ModuleType.External
类型的模块不是针对引擎构建或链接的。如果您包含
Slate
,它具有其他引擎依赖项,它将找不到所需的符号并引发链接错误。您的外部 Visual Studio 解决方案不了解 UE 构建系统,也不会找到任何 UE 符号。

如果您想使用引擎模块,则应将

ModuleType.External
类型的模块包含在带有
ModuleType.CPlusPlus
的标准
PrivateDependencyModuleNames.Add("<ExternalModuleName>")
模块中。这正是他们在
AwesomePlugin
模块教程中所做的事情。

© www.soinside.com 2019 - 2024. All rights reserved.