Конфигурации сборки / Build configurations

Конфигурация определяет как проекты/решения будут собираться - с какими настройками, в какие директории будут складываться временные файлы, как будет называться результирующий файл и прочее.

Часто используемые конфигурации:

  • Debug - код не оптимизируется (-O0), работает медленно, но хорошо работает отладчик.

  • Release - код оптимизируется (-O2 или -O3), работает быстро, но под отладчиком не видно значения переменных, не работают точки остановок отладки и прочее.

В CMake (CMAKE_BUILD_TYPE) также выделяют:

  • RelWithDebInfo - код с оптимизацией и некоторой отладочной информацией.

  • MinSizeRel - оптимизация на минимальный размер кода.

В Debug конфигурации неинициализированные локальные переменные нередко инициализируются специальным, так называемым, "мусором" (0xBAADF00D, 0xCCCCCCCC и другие) для упрощения отладки. В Release же ничего не инициализируется и неинициализированные переменные содержат то, что оказалось в памяти (часто 0, но это не гарантируется).

Last updated