社区问答

欢迎来到 Audiokinetic 社区问答论坛。在此,Wwise 和 Strata 用户可互帮互助。如需我们团队直接提供协助,请前往技术支持申请单页面。若要报告问题,请在 Audiokinetic Launcher 中选择“报告错误”选项(注意,问答论坛并不会接收错误报告)。我们内部设有专门的错误报告系统,会有专人查看报告并设法解决问题。

要想尽快得到满意的解答,请在提问时注意以下几点:

  • 描述尽量具体:比如,想达到什么样的目的,或者具体哪里有问题。
  • 包含关键细节:比如,Wwise 和游戏引擎版本以及所用操作系统等等。
  • 阐明所做努力:阐明自己为了排除故障都采取了哪些措施。
  • 聚焦问题本身:聚焦于问题本身的相关技术细节,以便别人可以快速找到解决方案。

+1 投票
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?
分类:General Discussion | 用户: Antonio Scaldaferri (140 分)

2 个回答

0 投票

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

}
 

用户: Hannes R. (140 分)
0 投票

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);
}
用户: Magnus Alakangas (140 分)
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!
...