Linking Error: UELinkerFixups.cpp.obj : error LNK2019: unresolved external symbol "void __cdecl EmptyLinkFunctionForStaticInitializationIwBpLib(void)

Trying to move a plugin, from a C++ based project over to a BP based project, when VS2013 gets to the linkage step, it produces the following error

UELinkerFixups.cpp.obj : error LNK2019: unresolved external symbol "void __cdecl EmptyLinkFunctionForStaticInitializationIwBpLib(void)

I have tried a multitude of things, in an effort to correct this error. Nothing works. There are 2 differences between the project the code works in, and the project where the linkage fails.

  1. The working project is C++ based. Failing project is BP.
  2. The working project is not a plugin. The failing project the C++ is set up as a plugin. Which is in truth, the ultimate goal, to have a independent plugin, that can be moved at will.

The modules type for the plugin is set to “Runtime”

Anyone have any thoughts?

1- run your engine with ‘run as administrator’
2- open you visual studio
3- clean your project
4- rebuild your project
5- return to unreal editor, and press compile
6- package your project…

You probably need to add IMPLEMENT_GAME_MODULE(FDefaultModuleImpl, BP);in your BP.cpp file or change whatever is there accordingly.

See
https://answers.unrealengine.com/questions/108534/lnk2019-errors-when-building-standalone-with-plugi.html
and
https://docs.unrealengine.com/latest/INT/Programming/Modules/Gameplay/index.html#multiplegameplaymodules