0

현재 Chromium Embedded Framework (CEF)를 기반으로하는 소프트웨어를 구현하려고합니다.CEF - MDd로 테스트 빌드

내가 목표로하고있는 플랫폼은 Windows이고 CEF Automated 빌드의 최신 버전을 사용하고 있습니다 (이 게시물의 날짜 기준).

때문에 다른 프로젝트와의 호환성을 이유로, 나는 각각 출시 디버그에 대한 /MDD/MD로 런타임 라이브러리를 지정해야하고 제공된 예제를 테스트 빌드하기로 결정했다. 또한 CEF 가이드에 표시된대로 make 루틴을 사용했습니다.

이렇게하려면 파일을 변경했습니다. cef_variables.cmake. 특히, 나는 기본 플래그 /MTD/MT 있습니다

list(APPEND CEF_COMPILER_FLAGS_DEBUG 
    /MDd   # Multithreaded debug runtime 
    /RTC1   # Disable optimizations 
    /Od   # Enable basic run-time checks 
) 
list(APPEND CEF_COMPILER_FLAGS_RELEASE 
    /MD   # Multithreaded release runtime 
    /O2   # Optimize for maximum speed 
    /Ob2   # Inline any suitable function 
    /GF   # Enable string pooling 
) 

CEF_COMPILER_FLAGS_DEBUGCEF_COMPILER_FLAGS_RELEASE을 변경했습니다. 기본 플래그를 사용하는 경우

libcef_dll_wrapper cefclient 프로젝트가 잘 컴파일에는 문제가 모두 없을 것 같습니다. 변경된 플래그를 사용할 때 다음 링커 오류에게 cmake 명령의

Severity Code Description Project File Line Suppression State 
Error LNK2038 mismatch detected for 'RuntimeLibrary': value 'MTd_StaticDebug' doesn't match value 'MDd_DynamicDebug' in binding_test.obj cefclient D:\Workspace\CEF\build\tests\cefclient\cef_sandbox.lib(at_exit.obj) 

출력을 cefclient을 던졌습니다 구축하는 동안

그러나, 나는 단지 libcef_dll_wrapper 을 구축 할 수있어

-- The C compiler identification is MSVC 19.0.24215.1 
-- The CXX compiler identification is MSVC 19.0.24215.1 
-- Check for working C compiler: D:/Program Files (x86)/Microsoft Visual Studio                                                14.0/VC/bin/cl.exe 
-- Check for working C compiler: D:/Program Files (x86)/Microsoft Visual Studio                                                14.0/VC/bin/cl.exe -- works 
-- Detecting C compiler ABI info 
-- Detecting C compiler ABI info - done 
-- Check for working CXX compiler: D:/Program Files (x86)/Microsoft Visual Studi                                                o 14.0/VC/bin/cl.exe 
-- Check for working CXX compiler: D:/Program Files (x86)/Microsoft Visual Studi                                                o 14.0/VC/bin/cl.exe -- works 
-- Detecting CXX compiler ABI info 
-- Detecting CXX compiler ABI info - done 
-- Detecting CXX compile features 
-- Detecting CXX compile features - done 
-- *** CEF CONFIGURATION SETTINGS *** 
-- Generator:     Visual Studio 14 2015 
-- Platform:      Windows 
-- Project architecture:   x86 
-- Binary distribution root:  D:/Workspace/CEF 
-- CEF Windows sandbox:   ON 
-- Visual Studio ATL support: ON 
-- Standard libraries:   comctl32.lib;rpcrt4.lib;shlwapi.lib;ws2_32.lib;                                                dbghelp.lib;psapi.lib;version.lib;winmm.lib 
-- Compile defines:    __STDC_CONSTANT_MACROS;__STDC_FORMAT_MACROS;WIN                                                32;_WIN32;_WINDOWS;UNICODE;_UNICODE;WINVER=0x0601;_WIN32_WINNT=0x601;NOMINMAX;WI                                                N32_LEAN_AND_MEAN;_HAS_EXCEPTIONS=0;PSAPI_VERSION=1;CEF_USE_SANDBOX;CEF_USE_ATL 
-- Compile defines (Debug): 
-- Compile defines (Release): NDEBUG;_NDEBUG 
-- C compile flags:    /MP;/Gy;/GR-;/W4;/WX;/wd4100;/wd4127;/wd4244;/w                                                d4481;/wd4512;/wd4701;/wd4702;/wd4996;/Zi 
-- C compile flags (Debug):  /MDd;/RTC1;/Od 
-- C compile flags (Release): /MD;/O2;/Ob2;/GF 
-- C++ compile flags:   /MP;/Gy;/GR-;/W4;/WX;/wd4100;/wd4127;/wd4244;/w                                                d4481;/wd4512;/wd4701;/wd4702;/wd4996;/Zi 
-- C++ compile flags (Debug): /MDd;/RTC1;/Od 
-- C++ compile flags (Release): /MD;/O2;/Ob2;/GF 
-- Exe link flags:    /MANIFEST:NO;/LARGEADDRESSAWARE 
-- Exe link flags (Debug):  /DEBUG 
-- Exe link flags (Release): 
-- Shared link flags: 
-- Shared link flags (Debug): /DEBUG 
-- Shared link flags (Release): 
-- CEF Binary files:    chrome_elf.dll;d3dcompiler_43.dll;d3dcompiler_4                                                7.dll;libcef.dll;libEGL.dll;libGLESv2.dll;natives_blob.bin;snapshot_blob.bin 
-- CEF Resource files:   cef.pak;cef_100_percent.pak;cef_200_percent.pak                                                ;cef_extensions.pak;devtools_resources.pak;icudtl.dat;locales 
-- Configuring done 
-- Generating done 
-- Build files have been written to: D:/Workspace/CEF/build 

여기에 무엇이 누락 되었습니까? 매크로 변수를 변경하면 모든 프로젝트가 동일한 설정을 사용하여 빌드되어 오류없이 컴파일 될 것이라고 생각했습니다.

답변

1

내가 연구를 계속했고 나는 자동 사용하는 경우 빌드 것으로 나타났습니다, 그것은 /MTD/MT 런타임을 사용하는 공식 cef_sandbox.lib를 사용합니다.

내 수정 사항은 macro_variables을 변경하고 OFFUSE_SANDBOX을 설정했다. 오류가 있지만 지금은 cefclient 올바르게 컴파일