error LNK2019: unresolved external symbol "private: static class UClass * with Engine plugin using

Hi guys, I wanna use alembicImporter and AlembicLibrary to do some automatic import stuff, but when I try to create an AlembicImporter it always throw me an error like:

1> Creating library D:\UE_Proj\Proj424\MyProject2\Plugins\ExtendEditor\Intermediate\Build\Win64\UE4Editor\Development\ExtendEditor\UE4Editor-ExtendEditor-0001.suppressed.lib and object D:\UE_Proj\Proj424\MyProject2\Plugins\ExtendEditor\Intermediate\Build\Win64\UE4Editor\Development\ExtendEditor\UE4Editor-ExtendEditor-0001.suppressed.exp
1>Module.ExtendEditor.cpp.obj : error LNK2019: unresolved external symbol “private: static class UClass * __cdecl UAlembicImportFactory::GetPrivateStaticClass(void)” (?GetPrivateStaticClass@UAlembicImportFactory@@CAPEAVUClass@@XZ) referenced in function “class UAlembicImportFactory * __cdecl NewObject<class UAlembicImportFactory>(class UObject *,class FName,enum EObjectFlags,class UObject *,bool,struct FObjectInstancingGraph *)” (??$NewObject@VUAlembicImportFactory@@@@YAPEAVUAlembicImportFactory@@PEAVUObject@@VFName@@W4EObjectFlags@@0_NPEAUFObjectInstancingGraph@@@Z)
1>D:\UE_Proj\Proj424\MyProject2\Plugins\ExtendEditor\Binaries\Win64\UE4Editor-ExtendEditor-0001.dll : fatal error LNK1120: 1 unresolved externals

so does it means it didnt realize the external symbol of alembic importer? But I already added them in build.cs somehow :X like:


using UnrealBuildTool;

public class ExtendEditor : ModuleRules
{
public ExtendEditor(ReadOnlyTargetRules Target) : base(Target)
{
PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs;

PublicIncludePaths.AddRange(
new string] {
// ... add public include paths required here ...
"ExtendEditor/Public",

}
);


PrivateIncludePaths.AddRange(
new string] {
// ... add other private include paths required here ...
"ExtendEditor/Private",

}
);


PublicDependencyModuleNames.AddRange(
new string]
{
"Core",
"UnrealEd",
"AlembicLibrary",
"AlembicImporter",
"CoreUObject", "Engine", "InputCore", "RenderCore", "RHI",

// ... add other public dependencies that you statically link with here ...
}
);


PrivateDependencyModuleNames.AddRange(
new string]
{
"Projects",
"InputCore",
"UnrealEd",
"LevelEditor",
"CoreUObject",
"Engine",
"Slate",
"SlateCore",
"UnrealEd",
"AlembicLibrary",
"AlembicImporter"
// ... add private dependencies that you statically link with here ...
}
);


DynamicallyLoadedModuleNames.AddRange(
new string]
{
// ... add any modules that your module loads dynamically here ...
}
);
}
}

and #include “AlembicImportFactory.h” in head file as well…
so…it should recognize the module? but why I still got this error?
can anyone help me?

1 Like

and… I try to add XX_API after the class definition but still not work…