2017-02-08 8 views
0

Windows에서 CMake 및 Ninja 생성기를 사용하여 공유 라이브러리를 빌드합니다. 증분 연결을 사용하여 연결에 필요한 시간을 줄이고 싶습니다.MSVC CMake 및 Ninja 생성기와의 증분 연결

CMAKE_SHARED_LINKER_FLAGS에서 "/incremental"으로 설정하려고했지만이 플래그는 항상 CMake에 의해 추가 된 "/INCREMENTAL:NO"으로 무시됩니다.

나는 또한 MSVC_INCREMENTAL_DEFAULT에서 ON으로 설정하려고 시도했으나 아무런 효과가 없었습니다.

그렇다면 CMake와 Ninja 생성기를 사용하여 점진적 연결을 어떻게 할 수 있습니까?

+0

내 VS toolchain 파일에 SET (CMAKE_EXE_LINKER_FLAGS_RELEASE/INCREMENTAL : YES "CACHE STRING" "FORCE")이 있습니다. 그래서 나는'SET (CMAKE_SHARED_LINKER_FLAGS "/ INCREMENTAL : YES"CACHE STRING ""FORCE) "도 작동한다고 가정하지만 CMake의 모든 기본값을 덮어 씁니다. – Florian

+0

나는 그것을 이해했다. 'CMAKE_BUILD_TYPE'을'Release'로 설정했기 때문에'set (CMAKE_SHARED_LINKER_FLAGS_RELEASE/incremental ")'으로'CMAKE_SHARED_LINKER_FLAGS_RELEASE'를 설정해야했습니다. – tofucoder

답변

0

답변

내 VS 툴체인 파일에 유사한 SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "/INCREMENTAL:YES" CACHE STRING "" FORCE)를 사용에 내 의견을 켜기.

CMake는 일반적으로 링커 플래그를 결합/추가합니다. CMAKE_SHARED_LINKER_FLAGS 및 빌드 유형 특정 부분은 CMAKE_SHARED_LINKER_FLAGS_RELEASE입니다. 당신으로 내가했던 - -

그래서 당신은 CMake가 공유 라이브러리를 /INCREMENTAL:NO를 설정 않는 곳을 찾는 중 하나를 가지고 그것을 덮어 쓰기 :

set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "/INCREMENTAL:YES") 

아니면 다른 빌드 구성에 특정 변수를 반복 할 수 같은 :