menu
 

La section Questions et réponses de la communauté Audiokinetic est un forum où les utilisateurs de Wwise et de Strata peuvent poser des questions et répondre à celles des autres membres de la communauté. Si vous souhaitez obtenir une réponse de la part de l'équipe de soutien technique d'Audiokinetic, veillez à utiliser le formulaire de Tickets de Soutien.

+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?
dans General Discussion par Antonio Scaldaferri (110 points)

2 Réponses

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));

}
 

par 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);
}
par 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!
...