Подтвердить что ты не робот

Как изменить тип сборки в режиме Release в cmake?

Я пытаюсь создать проект в режиме Release. По умолчанию он построен в режиме отладки. Я устанавливаю переменную CMAKE_BUILD_TYPE в "Release" в CMakeLists.txt. Но он все еще строит проект в режиме отладки. Когда я передаю "Release" в качестве типа сборки в команде CMake, он все равно не работает.

Команда CMake, которую я использую:

cmake -G"Visual Studio 10" -DCMAKE_BUILD_TYPE=Release
  -H"source_path" -B"Build path"

Пожалуйста, предоставьте решение, если оно есть.

4b9b3361

Ответ 1

Используйте его, как вы это делаете, но в корневом файле cmake добавьте следующее до ключевое слово проекта

SET(CMAKE_CONFIGURATION_TYPES ${CMAKE_BUILD_TYPE} CACHE STRING "" FORCE)
PROJECT(MY_PROJECT)#It here just to show where you should add it.

Ответ 2

Чтобы изменить тип сборки, в Windows это должно быть сделано во время сборки:

cmake --build {DIR} --config Release

По умолчанию это Debug. Я по-прежнему ищу способ изменить это значение по умолчанию. CMAKE_BUILD_TYPE не работает, и настройка CMAKE_CONFIGURATION_TYPES тоже не работает, очевидно, по той же причине они применяются только к файлам Unix, а не к визуальным проектам.

Ответ 3

Вы не можете установить тип сборки по умолчанию для Visual Studio из командной строки.

Генераторы CMake Visual Studio генерируют четыре стандартных профиля (Debug, RelWithDebInfo, MinSizeRel и Release), и вам нужно выбрать тот, который вы хотите построить из VS. Это связано с тем, что информация об активной конфигурации не является частью файлов проекта, сгенерированных CMake, но является частью файла .suo, сгенерированного VS.

Если вы хотите автоматическую сборку определенной конфигурации, используйте MSBuild вместо VS, который позволяет вам указать конфигурацию в командной строке.

Ответ 4

Я проверил его с помощью Visual Studio 2015 и cmake 3.3.

Короткий ответ

Ссылка

cmake --build {BUILD_DIR_PATH} --target ALL_BUILD --config {BUILD_TYPE}

Пример

cmake --build . --target ALL_BUILD --config Release

Длинный ответ

cmake -G{GENERATOR_NAME} -B{BUILD_DIR_PATH} -H{SOURCE_DIR_PATH}

cmake --build {BUILD_DIR_PATH} --target ALL_BUILD --config {BUILD_TYPE}

Пример

cmake -GVisual Studio 14 -Bbuild/win32/x86 -H.    

cmake --build build/win32/x86 --target ALL_BUILD --config Release

Дополнительная информация

  • "- G" - указывает имя генератора

  • "- B" - указывает путь к папке сборки

  • "- H" - указывает путь к исходной папке