Audiokinetic의 커뮤니티 Q&A는 사용자가 Wwise와 Strata 커뮤니티 내에서 서로 질문과 답변을 하는 포럼입니다. Audiokinetic의 기술 지원팀에게 문의하고 싶으신 경우 지원 티켓 페이지를 사용해주세요.

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

General Discussion Marcin P. (150 포인트) 로 부터

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.
...