Конфигурации сборки / Build configurations
Конфигурация определяет как проекты/решения будут собираться - с какими настройками, в какие директории будут складываться временные файлы, как будет называться результирующий файл и прочее.
Часто используемые конфигурации:
Debug - код не оптимизируется (
-O0
), работает медленно, но хорошо работает отладчик.Release - код оптимизируется (
-O2
или-O3
), работает быстро, но под отладчиком не видно значения переменных, не работают точки остановок отладки и прочее.
В CMake
(CMAKE_BUILD_TYPE
) также выделяют:
RelWithDebInfo - код с оптимизацией и некоторой отладочной информацией.
MinSizeRel - оптимизация на минимальный размер кода.
В Debug конфигурации неинициализированные локальные переменные нередко инициализируются специальным, так называемым, "мусором" (0xBAADF00D
, 0xCCCCCCCC
и другие) для упрощения отладки. В Release же ничего не инициализируется и неинициализированные переменные содержат то, что оказалось в памяти (часто 0
, но это не гарантируется).
Last updated