MSVC Инкрементная связь с CMake и генератором Ninja

Я создаю общую библиотеку с CMake и генератором Ninja в Windows. Я хотел бы использовать инкрементные ссылки, чтобы уменьшить время, необходимое для создания ссылок.

Я пытался установить CMAKE_SHARED_LINKER_FLAGS в "/incremental" но этот флаг всегда отменяется "/INCREMENTAL:NO" который добавлен CMake.

Я также пытался установить MSVC_INCREMENTAL_DEFAULT в ON, но это не имело никакого эффекта.

Итак, как я могу получить инкрементные ссылки, работая с CMake и генератором Ninja?

1 ответ

Решение

Превращаю мой комментарий в ответ

Я использую похожий SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "/INCREMENTAL:YES" CACHE STRING "" FORCE) в моем файле VS toolchain.

Имейте в виду, что CMake объединяет / добавляет свои флаги компоновщика из общих, например CMAKE_SHARED_LINKER_FLAGS и конкретные части типа сборки, такие как CMAKE_SHARED_LINKER_FLAGS_RELEASE,

Так что вы должны либо узнать, где установлен CMake /INCREMENTAL:NO для разделяемых библиотек - как мы с вами сделали - и перезаписать его:

set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "/INCREMENTAL:YES")

Или вы можете перебрать различные переменные конфигурации сборки, например:

Другие вопросы по тегам