Hello everyone!
I was reading about and testing the factory classes in ue4. I tried creating some test classes derived from UFactory and UActorFactory and they compiled without any problem. But I ran into compilation error as soon as I tried to add a class derived from UActoryFactoryStaticMesh. Here is the error:
CompilerResultsLog: Error: MyActorFactoryStaticMesh.cpp.obj : error LNK2001: unresolved external symbol "public: virtual bool __cdecl UActorFactoryStaticMesh::CanCreateActorFrom(struct FAssetData const &,class FText &)" (?CanCreateActorFrom@UActorFactoryStaticMesh@@UEAA_NAEBUFAssetData@@AEAVFText@@@Z)
CompilerResultsLog: Error: MyActorFactoryStaticMesh.gen.cpp.obj : error LNK2001: unresolved external symbol "public: virtual bool __cdecl UActorFactoryStaticMesh::CanCreateActorFrom(struct FAssetData const &,class FText &)" (?CanCreateActorFrom@UActorFactoryStaticMesh@@UEAA_NAEBUFAssetData@@AEAVFText@@@Z)
CompilerResultsLog: Error: MyActorFactoryStaticMesh.cpp.obj : error LNK2001: unresolved external symbol "public: virtual void __cdecl UActorFactoryStaticMesh::PostSpawnActor(class UObject *,class AActor *)" (?PostSpawnActor@UActorFactoryStaticMesh@@UEAAXPEAVUObject@@PEAVAActor@@@Z)
CompilerResultsLog: Error: MyActorFactoryStaticMesh.gen.cpp.obj : error LNK2001: unresolved external symbol "public: virtual void __cdecl UActorFactoryStaticMesh::PostSpawnActor(class UObject *,class AActor *)" (?PostSpawnActor@UActorFactoryStaticMesh@@UEAAXPEAVUObject@@PEAVAActor@@@Z)
CompilerResultsLog: Error: MyActorFactoryStaticMesh.cpp.obj : error LNK2001: unresolved external symbol "public: virtual void __cdecl UActorFactoryStaticMesh::PostCreateBlueprint(class UObject *,class AActor *)" (?PostCreateBlueprint@UActorFactoryStaticMesh@@UEAAXPEAVUObject@@PEAVAActor@@@Z)
CompilerResultsLog: Error: MyActorFactoryStaticMesh.gen.cpp.obj : error LNK2001: unresolved external symbol "public: virtual void __cdecl UActorFactoryStaticMesh::PostCreateBlueprint(class UObject *,class AActor *)" (?PostCreateBlueprint@UActorFactoryStaticMesh@@UEAAXPEAVUObject@@PEAVAActor@@@Z)
CompilerResultsLog: Error: MyActorFactoryStaticMesh.cpp.obj : error LNK2001: unresolved external symbol "public: virtual class UObject * __cdecl UActorFactoryStaticMesh::GetAssetFromActorInstance(class AActor *)" (?GetAssetFromActorInstance@UActorFactoryStaticMesh@@UEAAPEAVUObject@@PEAVAActor@@@Z)
CompilerResultsLog: Error: MyActorFactoryStaticMesh.gen.cpp.obj : error LNK2001: unresolved external symbol "public: virtual class UObject * __cdecl UActorFactoryStaticMesh::GetAssetFromActorInstance(class AActor *)" (?GetAssetFromActorInstance@UActorFactoryStaticMesh@@UEAAPEAVUObject@@PEAVAActor@@@Z)
CompilerResultsLog: Error: MyActorFactoryStaticMesh.cpp.obj : error LNK2001: unresolved external symbol "public: virtual struct FQuat __cdecl UActorFactoryStaticMesh::AlignObjectToSurfaceNormal(struct FVector const &,struct FQuat const &)const " (?AlignObjectToSurfaceNormal@UActorFactoryStaticMesh@@UEBA?AUFQuat@@AEBUFVector@@AEBU2@@Z)
CompilerResultsLog: Error: MyActorFactoryStaticMesh.gen.cpp.obj : error LNK2001: unresolved external symbol "public: virtual struct FQuat __cdecl UActorFactoryStaticMesh::AlignObjectToSurfaceNormal(struct FVector const &,struct FQuat const &)const " (?AlignObjectToSurfaceNormal@UActorFactoryStaticMesh@@UEBA?AUFQuat@@AEBUFVector@@AEBU2@@Z)
CompilerResultsLog: Error: F:\Game Dev\Unreal Projects\FactoryTest\Binaries\Win64\UE4Editor-FactoryTest-9974.dll : fatal error LNK1120: 5 unresolved externals
CompilerResultsLog: ERROR: UBT ERROR: Failed to produce item: F:\Game Dev\Unreal Projects\FactoryTest\Binaries\Win64\UE4Editor-FactoryTest-9974.dll
I think this might be related to missing module dependency, I am not sure. I have already added UnrealEd module dependency (like I mentioned, classes derived from UFactory and UActorFactory compile without any problem). Can anyone help me figure out this issue?
Thank you for any help!