Intereting Posts
Как указать целочисленный литерал типа unsigned char в C ++? Как использовать библиотеки Boost в проекте qmake? Что такое использование инструкции, не имеющей эффекта в C ++? Приложение MFC Assert fail в CRecentFileList :: Добавить в командной строке FileOpen Есть ли способ использовать делегирование конструкторов в Visual Studio 2012? Eclipse CDT отображает семантическую ошибку, но успешно работает Почему мой объект не копируется при удалении конструктора перемещения? Повторное случайное число в цикле Предоставление общих указателей внутри вектора правильно оттеснено Аффинное преобразование, простое rotation и масштабирование или что-то еще? Согласно моей интерпретации в §3.4.1 / 8 этот код должен компилироваться. Что мне не хватает? Как назначить переменную float переменной unsigned int, битовое изображение, а не отличать Передайте class Delphi функции / методу C ++, которая ожидает class с методами __thiscall Функция Lambda как аргумент по умолчанию для std :: function в конструкторе Название mangling в CUDA и C ++

Как создать конфигурацию сборки cmake без символов отладки и без оптимизации?

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

Debug : w/ debug symbols, w/o optimization Release : w/o debug symbols, w/ optimization RelWithDebInfo : w/ debug symbols, w/ optimization MinSizeRel : w/o debug symbols, w/ optimization, stripped binaries 

Но мне нужен новый:

 MyConf : w/o debug symbols, w/o optimization 

Итак, как его создать?

О таблице

Конфигурации с точки зрения компиляторов gcc / clang (CMake 3.4.1 ):

  • Отладка: -g
  • Выпустить: -O3 -DNDEBUG
  • RelWithDebInfo: -O2 -g -DNDEBUG
  • MinSizeRel: -Os -DNDEBUG

Это значит:

  +---------------+--------------+--------------+----------+ | | optimization | assert works | stripped | +---------------+--------------+--------------+----------| | Debug | no | yes | no | | Release | full | no | yes | | RelWithDebInfo| good | no | no | | MinSizeRel | size | no | yes | +---------------+--------------+--------------+----------+ 

Поэтому я не согласен с вашим описанием MinSizeRel потому что в этом случае я думаю, что оба MinSizeRel и Release лишены.

О вопросе

Насколько я понимаю, вы не хотите никаких дополнительных флагов вообще (no -g , -O* или -DNDEBUG ). Для генераторов типа Makefile :

 > cmake -H. -B_builds -DCMAKE_BUILD_TYPE=MyConf -DCMAKE_CXX_FLAGS_MYCONF="" > cmake --build _builds 

Для генераторов, таких как Visual Studio, вам нужно использовать CMAKE_CONFIGURATION_TYPES (см. Этот ответ):

 > cmake -H. -B_builds -DCMAKE_CONFIGURATION_TYPES="Release;Debug;RelWithDebInfo;MinSizeRel;MyConf" -DCMAKE_CXX_FLAGS_MYCONF="/Od" -DCMAKE_EXE_LINKER_FLAGS_MYCONF="" > cmake --build _builds --config MyConf