menu
 

Audiokinetic's Community Q&A is the forum where users can ask and answer questions within the Wwise and Strata communities. If you would like to get an answer from Audiokinetic's Technical support team, make sure you use the Support Tickets page.

+1 vote
While compiling my project in a server target, i have this linking error:
 

WwiseSoundEngineAPI_Null.cpp.obj : error LNK2019: unresolved external symbol "public: __cdecl AK::SoundEngine::DynamicSequence::PlaylistItem::PlaylistItem(void)" (??0PlaylistItem@DynamicSequence@SoundEngine@AK@@QEAA@XZ) referenced in function "public: virtual class AK::SoundEngine::DynamicSequence::PlaylistItem & __cdecl FWwiseSoundEngineAPI_Null::FDynamicSequence::FPlaylist::operator[](unsigned int)const " (??AFPlaylist@FDynamicSequence@FWwiseSoundEngineAPI_Null@@UEBAAEAVPlaylistItem@DynamicSequence@SoundEngine@AK@@I@Z)

WwiseSoundEngineAPI_Null.cpp.obj : error LNK2019: unresolved external symbol "public: __cdecl AK::SoundEngine::DynamicSequence::PlaylistItem::~PlaylistItem(void)" (??1PlaylistItem@DynamicSequence@SoundEngine@AK@@QEAA@XZ) referenced in function "void __cdecl `public: virtual class AK::SoundEngine::DynamicSequence::PlaylistItem & __cdecl FWwiseSoundEngineAPI_Null::FDynamicSequence::FPlaylist::operator[](unsigned int)const '::`2'::`dynamic atexit destructor for 'Empty''(void)" (??__FEmpty@?1???AFPlaylist@FDynamicSequence@FWwiseSoundEngineAPI_Null@@UEBAAEAVPlaylistItem@DynamicSequence@SoundEngine@AK@@I@Z@YAXXZ)

How can i fix it?
in General Discussion by Antonio Scaldaferri (110 points)

2 Answers

0 votes

I had this issue for Linux Server and I made a cheeky fix by making sure the TargetAkLibs were added for the server platform in WwiseSoundEngine_2024_1_OptionalModule.Build.cs in  the end of the Apply function. It's probably not the proper solution but it will solve the missing symbols. You could probably do something similar for a quick workaround


if (!IsWwiseTargetSupported && Target.Platform == UnrealTargetPlatform.Linux && Target.Type == TargetRules.TargetType.Server)
{

SE.PublicAdditionalLibraries.AddRange(WwiseUEPlatformInstance.GetSanitizedAkLibList(TargetAkLibs));

}
 

by Hannes R. (140 points)
0 votes

An ugly workaround that at least will compile on a server target is this:
Line 2182 in WwiseSoundEngineAPI_Null.cpp

AK::SoundEngine::DynamicSequence::PlaylistItem& FWwiseSoundEngineAPI_Null::FDynamicSequence::FPlaylist::operator[](unsigned int uiIndex) const
{
    check(false);
    FPlatformMisc::RaiseException(EXCEPTION_ACCESS_VIOLATION);
    static char EmptyBuffer[sizeof(AK::SoundEngine::DynamicSequence::PlaylistItem)];
    return *reinterpret_cast<AK::SoundEngine::DynamicSequence::PlaylistItem*>(EmptyBuffer);
}
by Magnus Alakangas (140 points)
Audiokinetic fixed the compilation in the latest version but now the Linux server doesn't cook anymore....
LogAkAudio: Error: FAkAudioModule::CreateResourceCookerForPlatform : Could not get platform info for target Linux!
...