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