Following the discussion here https://www.audiokinetic.com/qa/5770/ue4-lnk2001-and-lnk2019, I added the implementation for memory management hooks in the game project. The project can compile and play in the Editor.
But when I packaged the game to Windows (x64), I got these errors:
UATHelper: Packaging (Windows (64-bit)): MyAudioSystem.cpp.obj : error LNK2005: "void * __cdecl AK::AllocHook(unsigned __int64)" (?AllocHook@AK@@YAPEAX_K@Z) already defined in Module.AkAudio.cpp.obj
UATHelper: Packaging (Windows (64-bit)): MyAudioSystem.cpp.obj : error LNK2005: "void __cdecl AK::FreeHook(void *)" (?FreeHook@AK@@YAXPEAX@Z) already defined in Module.AkAudio.cpp.obj
UATHelper: Packaging (Windows (64-bit)): MyAudioSystem.cpp.obj : error LNK2005: "void * __cdecl AK::VirtualAllocHook(void *,unsigned __int64,unsigned long,unsigned long)" (?VirtualAllocHook@AK@@YAPEAXPEAX_KKK@Z) already defined in AkWindowsInitializationSettings.cpp.obj
UATHelper: Packaging (Windows (64-bit)): MyAudioSystem.cpp.obj : error LNK2005: "void __cdecl AK::VirtualFreeHook(void *,unsigned __int64,unsigned long)" (?VirtualFreeHook@AK@@YAXPEAX_KK@Z) already defined in AkWindowsInitializationSettings.cpp.obj
If I removed the implementation from the game project, I got "unresolved symbols" errors when compiling.
Anyone knows how to solve the problem?