首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从UE4派生K2Node_AnimGetter时出现的K2Node_AnimGetter错误

从UE4派生K2Node_AnimGetter时出现的K2Node_AnimGetter错误
EN

Stack Overflow用户
提问于 2021-02-04 20:55:54
回答 1查看 548关注 0票数 0

我正在尝试从K2Node_AnimGetter派生来向它添加一些功能。然而,当我试图编译它时,我会得到一些未解决的外部符号LNK2001错误。

在从K2Node_CallFunction派生(从AnimGetter自身派生的内容)时,我没有问题要编译。

我试图在AnimGraph中包括一些依赖项,但是没有结果.

我漏掉了什么吗?

K2Node_MyAnimGetter.h

代码语言:javascript
复制
#pragma once

#include "CoreMinimal.h"
#include "K2Node_AnimGetter.h"
#include "K2Node_MyAnimGetter.generated.h"

UCLASS()
class MYGAMEEDITOR_API UK2Node_MyAnimGetter : public UK2Node_AnimGetter
{
    GENERATED_BODY()
};

K2Node_MyAnimGetter.cpp

代码语言:javascript
复制
#include "K2Node_MyAnimGetter.h"
// nothing else since my class is empty

MyGameEditor.Build.cs

代码语言:javascript
复制
using UnrealBuildTool;

public class MyGameEditor : ModuleRules
{
    public MyGameEditor(ReadOnlyTargetRules Target) : base(Target)
    {
        PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;
    
        PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "BlueprintGraph", "AnimGraph", "AnimGraphRunTime" });

        PrivateDependencyModuleNames.AddRange(new string[] { "Engine", "UnrealEd", "BlueprintGraph", "AnimGraph", "AnimGraphRunTime", "KismetCompiler" });
    }
}

错误日志:

代码语言:javascript
复制
1>K2Node_MyAnimGetter.cpp.obj : error LNK2001: symbole externe non resolu "public: virtual void __cdecl UK2Node_AnimGetter::Serialize(class FArchive &)" (?Serialize@UK2Node_AnimGetter@@UEAAXAEAVFArchive@@@Z)
1>K2Node_MyAnimGetter.gen.cpp.obj : error LNK2001: symbole externe non resolu "public: virtual void __cdecl UK2Node_AnimGetter::Serialize(class FArchive &)" (?Serialize@UK2Node_AnimGetter@@UEAAXAEAVFArchive@@@Z)
1>K2Node_MyAnimGetter.cpp.obj : error LNK2001: symbole externe non resolu "public: virtual void __cdecl UK2Node_AnimGetter::PostPasteNode(void)" (?PostPasteNode@UK2Node_AnimGetter@@UEAAXXZ)
1>K2Node_MyAnimGetter.gen.cpp.obj : error LNK2001: symbole externe non resolu "public: virtual void __cdecl UK2Node_AnimGetter::PostPasteNode(void)" (?PostPasteNode@UK2Node_AnimGetter@@UEAAXXZ)
1>K2Node_MyAnimGetter.cpp.obj : error LNK2001: symbole externe non resolu "public: virtual void __cdecl UK2Node_AnimGetter::AllocateDefaultPins(void)" (?AllocateDefaultPins@UK2Node_AnimGetter@@UEAAXXZ)
1>K2Node_MyAnimGetter.gen.cpp.obj : error LNK2001: symbole externe non resolu "public: virtual void __cdecl UK2Node_AnimGetter::AllocateDefaultPins(void)" (?AllocateDefaultPins@UK2Node_AnimGetter@@UEAAXXZ)
1>K2Node_MyAnimGetter.cpp.obj : error LNK2001: symbole externe non resolu "public: virtual class FText __cdecl UK2Node_AnimGetter::GetNodeTitle(enum ENodeTitleType::Type)const " (?GetNodeTitle@UK2Node_AnimGetter@@UEBA?AVFText@@W4Type@ENodeTitleType@@@Z)
1>K2Node_MyAnimGetter.gen.cpp.obj : error LNK2001: symbole externe non resolu "public: virtual class FText __cdecl UK2Node_AnimGetter::GetNodeTitle(enum ENodeTitleType::Type)const " (?GetNodeTitle@UK2Node_AnimGetter@@UEBA?AVFText@@W4Type@ENodeTitleType@@@Z)
1>K2Node_MyAnimGetter.cpp.obj : error LNK2001: symbole externe non resolu "public: virtual bool __cdecl UK2Node_AnimGetter::CanCreateUnderSpecifiedSchema(class UEdGraphSchema const *)const " (?CanCreateUnderSpecifiedSchema@UK2Node_AnimGetter@@UEBA_NPEBVUEdGraphSchema@@@Z)
1>K2Node_MyAnimGetter.gen.cpp.obj : error LNK2001: symbole externe non resolu "public: virtual bool __cdecl UK2Node_AnimGetter::CanCreateUnderSpecifiedSchema(class UEdGraphSchema const *)const " (?CanCreateUnderSpecifiedSchema@UK2Node_AnimGetter@@UEBA_NPEBVUEdGraphSchema@@@Z)
1>K2Node_MyAnimGetter.cpp.obj : error LNK2001: symbole externe non resolu "public: virtual bool __cdecl UK2Node_AnimGetter::IsActionFilteredOut(class FBlueprintActionFilter const &)" (?IsActionFilteredOut@UK2Node_AnimGetter@@UEAA_NAEBVFBlueprintActionFilter@@@Z)
1>K2Node_MyAnimGetter.gen.cpp.obj : error LNK2001: symbole externe non resolu "public: virtual bool __cdecl UK2Node_AnimGetter::IsActionFilteredOut(class FBlueprintActionFilter const &)" (?IsActionFilteredOut@UK2Node_AnimGetter@@UEAA_NAEBVFBlueprintActionFilter@@@Z)
1>K2Node_MyAnimGetter.cpp.obj : error LNK2001: symbole externe non resolu "public: virtual void __cdecl UK2Node_AnimGetter::GetMenuActions(class FBlueprintActionDatabaseRegistrar &)const " (?GetMenuActions@UK2Node_AnimGetter@@UEBAXAEAVFBlueprintActionDatabaseRegistrar@@@Z)
1>K2Node_MyAnimGetter.gen.cpp.obj : error LNK2001: symbole externe non resolu "public: virtual void __cdecl UK2Node_AnimGetter::GetMenuActions(class FBlueprintActionDatabaseRegistrar &)const " (?GetMenuActions@UK2Node_AnimGetter@@UEBAXAEAVFBlueprintActionDatabaseRegistrar@@@Z)
1>R:\SVN\MyGame\Binaries\Win64\UE4Editor-MyGameEditor.dll : fatal error LNK1120: 7 externes non resolus
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-04 22:03:00

如果您查看UK2Node_AnimGetter类,您会注意到它是UCLASS(MinimalAPI)。这意味着类在其模块之外是可以访问的,但是它的内部函数不被导出。

您还会注意到,所有带有链接器错误的函数都是虚拟覆盖。通过重写这些函数,您可能可以手动导出它们,从而修复链接错误。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66053680

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档