4.6 can't compile engine with bDebugBuildsActuallyUseDebugCRT enabled

Hi,

I am trying to link APEX_Clothing with debug configuration:

 #if UE_BUILD_DEBUG && !defined(NDEBUG)	// Use !defined(NDEBUG) to check to see if we actually are linking with Debug third party libraries (bDebugBuildsActuallyUseDebugCRT)
    
  PhysX3CommonHandle = LoadLibraryW(*(RootPhysXPath + "PhysX3CommonDEBUG_x64.dll"));
  nvToolsExtHandle = LoadLibraryW(*(RootPhysXPath + "nvToolsExt64_1.dll"));
  PhysX3Handle = LoadLibraryW(*(RootPhysXPath + "PhysX3DEBUG_x64.dll"));

And I get numerous errors with around linking libcef_dll_wrapper.lib

1>libcef_dll_wrapper.lib(browser_host_ctocpp.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in Core.h.obj
1>libcef_dll_wrapper.lib(browser_host_ctocpp.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in Core.h.obj
1>libcef_dll_wrapper.lib(libcef_dll_wrapper.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in Core.h.obj
1>libcef_dll_wrapper.lib(libcef_dll_wrapper.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in Core.h.obj
1>libcef_dll_wrapper.lib(client_cpptoc.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in Core.h.obj
1>libcef_dll_wrapper.lib(client_cpptoc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in Core.h.obj
1>libcef_dll_wrapper.lib(run_file_dialog_callback_cpptoc.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in Core.h.obj
1>libcef_dll_wrapper.lib(run_file_dialog_callback_cpptoc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in Core.h.obj
1>libcef_dll_wrapper.lib(browser_ctocpp.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in Core.h.obj
1>libcef_dll_wrapper.lib(browser_ctocpp.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in Core.h.obj
1>libcef_dll_wrapper.lib(request_context_ctocpp.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in Core.h.obj
1>libcef_dll_wrapper.lib(request_context_ctocpp.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in Core.h.obj
1>libcef_dll_wrapper.lib(transfer_util.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in Core.h.obj
1>libcef_dll_wrapper.lib(transfer_util.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in Core.h.obj
1>libcef_dll_wrapper.lib(app_cpptoc.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in Core.h.obj
1>libcef_dll_wrapper.lib(app_cpptoc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in Core.h.obj
1>libcef_dll_wrapper.lib(end_tracing_callback_cpptoc.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in Core.h.obj
1>libcef_dll_wrapper.lib(end_tracing_callback_cpptoc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in Core.h.obj
1>libcef_dll_wrapper.lib(get_geolocation_callback_cpptoc.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in Core.h.obj
1>libcef_dll_wrapper.lib(get_geolocation_callback_cpptoc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in Core.h.obj
1>libcef_dll_wrapper.lib(scheme_handler_factory_cpptoc.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in Core.h.obj
1>libcef_dll_wrapper.lib(scheme_handler_factory_cpptoc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in Core.h.obj
1>libcef_dll_wrapper.lib(task_cpptoc.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in Core.h.obj
1>libcef_dll_wrapper.lib(task_cpptoc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in Core.h.obj
1>libcef_dll_wrapper.lib(v8handler_cpptoc.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in Core.h.obj
1>libcef_dll_wrapper.lib(v8handler_cpptoc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in Core.h.obj
1>libcef_dll_wrapper.lib(web_plugin_info_visitor_cpptoc.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in Core.h.obj
1>libcef_dll_wrapper.lib(web_plugin_info_visitor_cpptoc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in Core.h.obj
1>libcef_dll_wrapper.lib(web_plugin_unstable_callback_cpptoc.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in Core.h.obj
1>libcef_dll_wrapper.lib(web_plugin_unstable_callback_cpptoc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in Core.h.obj
1>libcef_dll_wrapper.lib(context_menu_handler_cpptoc.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in Core.h.obj
1>libcef_dll_wrapper.lib(context_menu_handler_cpptoc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in Core.h.obj
1>libcef_dll_wrapper.lib(dialog_handler_cpptoc.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in Core.h.obj
1>libcef_dll_wrapper.lib(dialog_handler_cpptoc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in Core.h.obj
1>libcef_dll_wrapper.lib(display_handler_cpptoc.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in Core.h.obj
1>libcef_dll_wrapper.lib(display_handler_cpptoc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in Core.h.obj
1>libcef_dll_wrapper.lib(download_handler_cpptoc.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in Core.h.obj
1>libcef_dll_wrapper.lib(download_handler_cpptoc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in Core.h.obj
1>libcef_dll_wrapper.lib(drag_handler_cpptoc.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in Core.h.obj
1>libcef_dll_wrapper.lib(drag_handler_cpptoc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in Core.h.obj
1>libcef_dll_wrapper.lib(focus_handler_cpptoc.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in Core.h.obj
1>libcef_dll_wrapper.lib(focus_handler_cpptoc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in Core.h.obj
1>libcef_dll_wrapper.lib(geolocation_handler_cpptoc.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in Core.h.obj
1>libcef_dll_wrapper.lib(geolocation_handler_cpptoc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in Core.h.obj
1>libcef_dll_wrapper.lib(jsdialog_handler_cpptoc.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in Core.h.obj
1>libcef_dll_wrapper.lib(jsdialog_handler_cpptoc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in Core.h.obj
1>libcef_dll_wrapper.lib(keyboard_handler_cpptoc.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in Core.h.obj
1>libcef_dll_wrapper.lib(keyboard_handler_cpptoc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in Core.h.obj
1>libcef_dll_wrapper.lib(life_span_handler_cpptoc.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in Core.h.obj
1>libcef_dll_wrapper.lib(life_span_handler_cpptoc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in Core.h.obj
1>libcef_dll_wrapper.lib(load_handler_cpptoc.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in Core.h.obj
1>libcef_dll_wrapper.lib(load_handler_cpptoc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in Core.h.obj
1>libcef_dll_wrapper.lib(render_handler_cpptoc.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in Core.h.obj
1>libcef_dll_wrapper.lib(render_handler_cpptoc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in Core.h.obj
1>libcef_dll_wrapper.lib(request_handler_cpptoc.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in Core.h.obj
1>libcef_dll_wrapper.lib(request_handler_cpptoc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in Core.h.obj
1>libcef_dll_wrapper.lib(process_message_ctocpp.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in Core.h.obj
1>libcef_dll_wrapper.lib(process_message_ctocpp.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in Core.h.obj
1>libcef_dll_wrapper.lib(frame_ctocpp.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in Core.h.obj
1>libcef_dll_wrapper.lib(frame_ctocpp.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in Core.h.obj
1>libcef_dll_wrapper.lib(request_context_handler_cpptoc.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in Core.h.obj
1>libcef_dll_wrapper.lib(request_context_handler_cpptoc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in Core.h.obj
1>libcef_dll_wrapper.lib(browser_process_handler_cpptoc.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in Core.h.obj
1>libcef_dll_wrapper.lib(browser_process_handler_cpptoc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in Core.h.obj
1>libcef_dll_wrapper.lib(render_process_handler_cpptoc.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in Core.h.obj
1>libcef_dll_wrapper.lib(render_process_handler_cpptoc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in Core.h.obj
1>libcef_dll_wrapper.lib(resource_bundle_handler_cpptoc.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in Core.h.obj
1>libcef_dll_wrapper.lib(resource_bundle_handler_cpptoc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in Core.h.obj
1>libcef_dll_wrapper.lib(command_line_ctocpp.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in Core.h.obj
1>libcef_dll_wrapper.lib(command_line_ctocpp.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in Core.h.obj
1>libcef_dll_wrapper.lib(scheme_registrar_ctocpp.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in Core.h.obj
1>libcef_dll_wrapper.lib(scheme_registrar_ctocpp.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in Core.h.obj
1>libcef_dll_wrapper.lib(resource_handler_cpptoc.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in Core.h.obj
1>libcef_dll_wrapper.lib(resource_handler_cpptoc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in Core.h.obj
1>libcef_dll_wrapper.lib(request_ctocpp.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in Core.h.obj

What should I do to fix this?

Regards

Pierdek

I changed in Cef3.build.cs

if (Target.Platform == UnrealTargetPlatform.Win64 && WindowsPlatform.Compiler != WindowsCompiler.VisualStudio2012)

to:

if (Target.Platform == UnrealTargetPlatform.Win64 && WindowsPlatform.Compiler != WindowsCompiler.VisualStudio2012 && Target.Configuration != UnrealTargetConfiguration.Debug)

And I’m able to compile the engine with DEBUG crt libraries.
But it would be nice to have CEF compatible with MDd_DynamicDebug.

Besides, in 4.7:

  • Added a debug version of the Chromium Embedded Framework (CEF) DLL wrapper library to avoid problems when using debug C Runtime Library (CRT)