menu
 

在 Audiokinetic 社区问答论坛上,用户可对 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.
...