UELinkerFixup error when building / packaging

Hi everyone,

I tried everything I could do so I really hope you can help me on this. When I tried to package my game, I had this type of error : "unresolved external symbol “void __cdecl EmptyLinkFunctionForStaticInitialization…” . I tried to compile my code with the Development mode in VS and had the same result.

I tried to found a solution and found a lot of post about errors in packaging game and did a lot of things like rebuild after rebooting, set the same DefaultGameMode and DefaultGameServerMode etc. And I finally found a post where some people said to rebuild the UE4.sln in Development to avoid that type of errors. BUT (there is always a but… ;p)

This means to have a project with a GitHub version of UE4 no? And I’m using a classic project created with launcher and only with the code of the project. I tried to found it in the Engine folders with no results.

So my question here is : Is there any UE4.sln in Engine folders? If yes, where? Is anyone know what to do ?

Thx for your future answer.

Hi SuperWax, I’m having the same issue. Did you ever find a solution?

Hi cognimancer, at this time, I didn’t find any solution for this problem. For me, we need to compile the Unreal Engine in the GitHub version in development, then copy and paste this build (UE4.exe) and replace the UE4.exe from the non-Git and then retry the compilation in the non-Git version :wink: ! But it’s just some idea. Didn’t test it yet

+1, I get the same error both from the Editor (File/Package project/Windows 64-bit) and from VS.

I built the Unreal Engine from the 4.5 branch on github.

I fixed this for my project, which was a plugin I was writing. My problem was occurring when I called the IMPLEMENT_MODULE macro - from what I can tell, if this macro’s second argument is invalid, it will throw this error. There may be other bugs that cause this same error, but that did it for me. Hope that helps.

It dit help. Thanks a million!

To further clarify for anyone coming across this:
Many examples have

IMPLEMENT_MODULE(MyModuleImpl, Module)

This will work fine, but fail when packaging. The Module should be replaced with your own module name

IMPLEMENT_MODULE(MyModuleImpl, MyModule)

This is indeed the proper answer.

There are several places where the module name is specified (.uproject, IMPLEMENT_…_MODULE macro, in the Build.cs file) but the build system does not enforce strict equality of these references when building and loading. Mismatches will manifest very indirectly in build or loading issues and can be tricky to identify.

It would certainly help if the documentation mentioned where the root identifier is specified and which fields in other documents are references to that identifier.