I'm developing a game with a custom engine (c++, DirectX11, Physx...). It only works on x64. And now I'm implementing Wwise for the sound. Problem is It only compiles on Release but not in Debug because a linker error
Error 2 error LNK2019: unresolved external symbol "public: __cdecl Serializer::Serializer(class AK::IWriteBuffer &,bool)" (??0Serializer@@QEAA@AEAVIWriteBuffer@AK@@_N@Z) referenced in function "public: __cdecl MonitorSerializer::MonitorSerializer(bool)" (??0MonitorSerializer@@QEAA@_N@Z) E:\engine\AkSoundEngine.lib(AkMonitor.obj) engine
Error 3 error LNK2019: unresolved external symbol "public: __cdecl Serializer::~Serializer(void)" (??1Serializer@@QEAA@XZ) referenced in function "public: virtual __cdecl MonitorSerializer::~MonitorSerializer(void)" (??1MonitorSerializer@@UEAA@XZ) E:\engine\AkSoundEngine.lib(AkMonitor.obj) engine
Error 4 error LNK2019: unresolved external symbol "public: bool __cdecl Serializer::Put(char)" (?Put@Serializer@@QEAA_ND@Z) referenced in function "public: static void __cdecl CAkLEngine::GetPipelineData(class MonitorSerializer &,bool)" (?GetPipelineData@CAkLEngine@@SAXAEAVMonitorSerializer@@_N@Z) E:\engine\AkSoundEngine.lib(AkLEngine_SoftwarePipeline.obj) engine
Error 5 error LNK2019: unresolved external symbol "public: bool __cdecl Serializer::Put(unsigned char)" (?Put@Serializer@@QEAA_NE@Z) referenced in function "public: static void __cdecl CAkLEngine::GetPipelineData(class MonitorSerializer &,bool)" (?GetPipelineData@CAkLEngine@@SAXAEAVMonitorSerializer@@_N@Z) E:\engine\AkSoundEngine.lib(AkLEngine_SoftwarePipeline.obj) engine
Error 6 error LNK2019: unresolved external symbol "public: bool __cdecl Serializer::Put(unsigned short)" (?Put@Serializer@@QEAA_NG@Z) referenced in function "public: static void __cdecl CAkLEngine::GetPipelineData(class MonitorSerializer &,bool)" (?GetPipelineData@CAkLEngine@@SAXAEAVMonitorSerializer@@_N@Z) E:\engine\AkSoundEngine.lib(AkLEngine_SoftwarePipeline.obj) engine
Error 7 error LNK2019: unresolved external symbol "public: bool __cdecl Serializer::Put(unsigned long)" (?Put@Serializer@@QEAA_NK@Z) referenced in function "public: static void __cdecl CAkLEngine::GetPipelineData(class MonitorSerializer &,bool)" (?GetPipelineData@CAkLEngine@@SAXAEAVMonitorSerializer@@_N@Z) E:\engine\AkSoundEngine.lib(AkLEngine_SoftwarePipeline.obj) engine
Error 8 error LNK2019: unresolved external symbol "public: bool __cdecl Serializer::Put(unsigned __int64)" (?Put@Serializer@@QEAA_N_K@Z) referenced in function "public: static void __cdecl CAkLEngine::GetPipelineData(class MonitorSerializer &,bool)" (?GetPipelineData@CAkLEngine@@SAXAEAVMonitorSerializer@@_N@Z) E:\engine\AkSoundEngine.lib(AkLEngine_SoftwarePipeline.obj) engine
Error 9 error LNK2019: unresolved external symbol "public: bool __cdecl Serializer::Put(float)" (?Put@Serializer@@QEAA_NM@Z) referenced in function "bool __cdecl PutRawMeterData(enum AkMonitorData::BusMeterDataType,struct AkChannelConfig,float const *,class MonitorSerializer &)" (?PutRawMeterData@@YA_NW4BusMeterDataType@AkMonitorData@@UAkChannelConfig@@PEBMAEAVMonitorSerializer@@@Z) E:\engine\AkSoundEngine.lib(AkLEngine_SoftwarePipeline.obj) engine
Error 10 error LNK2019: unresolved external symbol "public: bool __cdecl Serializer::Put(bool)" (?Put@Serializer@@QEAA_N_N@Z) referenced in function "public: static void __cdecl CAkLEngine::GetPipelineData(class MonitorSerializer &,bool)" (?GetPipelineData@CAkLEngine@@SAXAEAVMonitorSerializer@@_N@Z) E:\engine\AkSoundEngine.lib(AkLEngine_SoftwarePipeline.obj) engine
Error 11 error LNK2019: unresolved external symbol "public: bool __cdecl Serializer::PutPacked(float)" (?PutPacked@Serializer@@QEAA_NM@Z) referenced in function "public: static void __cdecl CAkLEngine::GetPipelineData(class MonitorSerializer &,bool)" (?GetPipelineData@CAkLEngine@@SAXAEAVMonitorSerializer@@_N@Z) E:\engine\AkSoundEngine.lib(AkLEngine_SoftwarePipeline.obj) engine
As you can see, the problem comes from that unresolved Serializer. So, here's my question: does anyone have any clue or fix for that? I tried to contact people on the official forum of Audiokinetic, but nothing there yet. Any answer will be appreciated. PD: I'm using the last stable WWise release and VS 2013
Solution:
So, after all, Captain Obvlious was partly right. I was missing a lib that is only used in debug mode and has a name that doesn't start with AK, so I missed It. That's the whole list you have to include in your linker/aditional dependencies (the last one is the one I was missing). Thanks Captain!
AkConvolutionReverbFX.lib
AkFlangerFX.lib
AstoundsoundExpanderFX.lib
AkTremoloFX.lib
AkMemoryMgr.lib
AuroHeadphoneFX.lib
IOSONOProximityMixer.lib
AkMotionGenerator.lib
AkSineSource.lib
AkSoundSeedWind.lib
AkStereoDelayFX.lib
AkGuitarDistortionFX.lib
AkRumble.lib
AuroPannerMixer.lib
AkSoundEngine.lib
AkSilenceSource.lib
AkPeakLimiterFX.lib
McDSPLimiterFX.lib
iZTrashBoxModelerFX.lib
AkSoundSeedImpactFX.lib
AkRoomVerbFX.lib
iZTrashDelayFX.lib
McDSPFutzBoxFX.lib
AkParametricEQFX.lib
AstoundsoundFolddownFX.lib
AkToneSource.lib
AkMatrixReverbFX.lib
AkCompressorFX.lib
AkAudioInputSource.lib
AkMusicEngine.lib
AkSoundSeedWoosh.lib
CrankcaseAudioREVModelPlayerFX.lib
iZTrashMultibandDistortionFX.lib
iZHybridReverbFX.lib
AkPitchShifterFX.lib
iZTrashDynamicsFX.lib
iZTrashDistortionFX.lib
AstoundsoundRTIFX.lib
AkDelayFX.lib
AkGainFX.lib
AkVorbisDecoder.lib
AkMeterFX.lib
AstoundsoundShared.lib
iZTrashFiltersFX.lib
AkSynthOne.lib
AkMP3Source.lib
AkStreamMgr.lib
AkHarmonizerFX.lib
AkTimeStretchFX.lib
AkExpanderFX.lib
CommunicationCentral.lib