コミュニティQ&A

Audiokineticのコミュニティ主導のQ&Aフォーラムへようこそ。ここはWwiseとStrataのユーザのみなさまがお互いに協力し合う場です。弊社チームによる直接のサポートをご希望の場合はサポートチケットページをご利用ください。バグを報告するには、Audiokinetic LauncherのBug Reportオプションをご利用ください。(Q&AフォーラムではBug Reportを受け付けておりませんのでご注意ください。専用のBug Reportシステムをご利用いただくことで、バグの報告が適切な担当部門に届き、修正される可能性が高まります。)

最適な回答を迅速に得られるよう、ご質問を投稿される際は以下のヒントをご参考ください。

  • 具体的に示す:何を達成したいのか、またはどんな問題に直面しているのかを具体的に示してください。
  • 重要な詳細情報を含める:Wwiseとゲームエンジンのバージョンやご利用のOSなど詳細情報を記載してください。
  • 試したことを説明する:すでに試してみたトラブルシューティングの手順を教えてください。
  • 事実に焦点を当てる:問題の技術的な事実を記載してください。問題に焦点を当てることで、ほかのユーザのみなさまが解決策を迅速に見つけやすくなります。

0 支持

We've found sth interesting in Audiokinetic.Build.cs in line 136:

This is:

if (Target.Configuration == UnrealTargetConfiguration.Debug)
{
    akPlatformLibPath = akDir + akPlatformLibDir + @"Profile\lib";
}
This should be:
if (Target.Configuration == UnrealTargetConfiguration.Debug)
{
    akPlatformLibPath = akDir + akPlatformLibDir + @"Debug\lib";
}
Without this, we get:
AkSoundEngine.lib(AkMonitor.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in Engine.h.obj
1>AkSoundEngine.lib(AkMonitor.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in Engine.h.obj
1>AkSoundEngine.lib(CommandDataSerializer.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in Engine.h.obj
1>AkSoundEngine.lib(CommandDataSerializer.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in Engine.h.obj
1>CommunicationCentral.lib(Serializer.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in Engine.h.obj
1>CommunicationCentral.lib(Serializer.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in Engine.h.obj
1>SFLib.lib(SFLib.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in Engine.h.obj
1>SFLib.lib(SFLib.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in Engine.h.obj

Isn't it a bug ?

Cheers!

Marcin

Marcin P. (150 ポイント) General Discussion

回答 1

0 支持
This was done on purpose. As you can see, forcing the use of the debug libraries causes link errors.

Epic has decided to link against the Release version of the CRT, even for the Debug configuration. Our own Debug libraries still use the Debug CRT, so trying to use them in UE causes link errors.

The profile libraries still allow you to connect the Wwise Profiler to your game. The only difference between Debug and Profile is that the Profile libraries are optimized, so we decided to use them for the Debug configuration, avoiding the link error.

If you absolutely need to use the Debug version of our libraries, Epic has exposed an option in their build pipeline to enable the use of the Debug CRT, thus allowing the use of our Debug libraries. Simply set bDebugBuildsActuallyUseDebugCRT to true in BuildConfiguration.cs. This is not the recommended method, though, as the performance hit is significant.
Benoit S. (Audiokinetic) (16.0k ポイント)
It turns out, that bDebugBuildsActuallyUseDebugCRT was silently switched to true when we integrated Scaleform to our engine.

So, If some of your clients also use Scaleform you may warn them about it.
...