반응형
[Unreal/C++] IGameplayTaskOwnerInterface Link Error
언리얼 엔진 5에서 AI Controller와 UBTService 등에서 IGameplayTaskOwnerInterface인터페이스를 상속 받아 사용할 때 나타나는 문제점이다.
이는 모듈 추가가 되지 않아서 파일을 찾지 못하는 문제가 있다.
CompilerResultsLog: Error: BTS_Corpse.cpp.obj : error LNK2001:
"public: virtual void __cdecl IGameplayTaskOwnerInterface::OnGameplayTaskActivated(class UGameplayTask)"
OnGameplayTaskActivated@IGameplayTaskOwnerInterface@@UEAAXAEAVUGameplayTask
CompilerResultsLog: Error: Module.MainProject.gen.cpp.obj : error LNK2001:
"public: virtual void __cdecl IGameplayTaskOwnerInterface::OnGameplayTaskActivated(class UGameplayTask)" (OnGameplayTaskActivated@IGameplayTaskOwnerInterface@@UEAAXAEAVUGameplayTask)
CompilerResultsLog: Error: BTS_Corpse.cpp.obj : error LNK2001:
"public:virtual void __cdecl IGameplayTaskOwnerInterface::OnGameplayTaskDeactivated(class UGameplayTask)" (OnGameplayTaskDeactivated@IGameplayTaskOwnerInterface@@UEAAXAEAVUGameplayTask)
CompilerResultsLog: Error: Module.MainProject.gen.cpp.obj : error LNK2001:
"public:virtual void __cdecl IGameplayTaskOwnerInterface::OnGameplayTaskDeactivated(class UGameplayTask)"
(OnGameplayTaskDeactivated@IGameplayTaskOwnerInterface@@UEAAXAEAVUGameplayTask)
CompilerResultsLog: Error:
F:\Projects\MainProject\Binaries\Win64\UnrealEditor-MainProject-1577.dll : fatal error LNK1120:
상속 구조는 다음과 같다.
UBTService -> UBTAuxiliaryNode -> UBTNode -> public UObject, public IGameplayTaskOwnerInterface
IGameplayTaskOwnerInterface의 클래스는 GAMEPLAYTASKS_API에 있는 것을 확인할 수 있다.
해결 방법은 간단하다.
컴파일 시 파일을 찾을 수 있도록 모듈을 추가해주는 것이다.
Visual Studio를 사용하고 있다면 {ProjectName}.Build.cs 파일을 열어 위처럼 모듈을 추가해 준다.
PublicDependencyModuleNames.AddRange(new string[] {
"AIModule", // AIController
"GameplayTasks" // IGameplayTaskOwnerInterface
});
반응형
'Unreal > Solution' 카테고리의 다른 글
Unreal WidgetComponent가 활성화 되지 않음 (0) | 2023.12.27 |
---|---|
Unreal 몽타주 슬롯 변경시 애니메이션 재생 (0) | 2023.12.21 |
Unreal UseBlackboard TObjectPtr 문제 (0) | 2023.12.18 |
Unreal C++ 생성자 사용시 주의할 점 (0) | 2023.12.16 |
Unreal C++ 블루프린트 부모 클래스 변경 (0) | 2023.12.12 |