Ответ 1

Ну, это зависит от того, какой язык вы используете, но в целом это две отдельные конфигурации, каждая из которых имеет свои собственные настройки. По умолчанию Debug включает в себя отладочную информацию в скомпилированных файлах (что позволяет легко отлаживать), в то время как Release обычно имеет оптимизацию.

Что касается условной компиляции, каждый из них определяет разные символы, которые могут быть проверены в вашей программе, но они являются языковыми макросами.

Ответ 2

Отладка и Release - это просто метки для разных конфигураций решений . Вы можете добавить других, если хотите. Проект, который я когда-то работал, назывался "Debug Internal", который использовался для включения внутренних функций редактирования приложения. Вы можете увидеть это, если вы перейдете к Configuration Manager... (он находится в меню Build). Дополнительную информацию о библиотеке MSDN можно найти в Диалоговое окно Configuration Manager.

Каждая конфигурация решения состоит из группы конфигураций проекта. Опять же, это только ярлыки, на этот раз для набора настроек для вашего проекта. Например, наши проекты библиотеки С++ имеют конфигурации проектов, называемые "Debug", "Debug_Unicode", "Debug_MT" и т.д.

Доступные настройки зависят от того, какой тип проекта вы строите. Для .NET-проекта это довольно маленький набор: #define и несколько других вещей. Для проекта С++ вы получаете гораздо больше возможностей для настройки.

В общем, вы будете использовать "Debug", когда вы хотите, чтобы ваш проект был построен при выключенном оптимизаторе, и когда вы хотите получить полную информацию об отладке/символе, включенную в вашу сборку (в файле .PDB, обычно). Вы будете использовать "Release", когда вы хотите включить оптимизатор, и когда вы не хотите включать полную отладочную информацию.

Ответ 3

Основное отличие заключается в том, что при компиляции в режиме отладки создаются файлы pdb, которые позволяют отлаживать (чтобы вы могли выполнить код при его запуске). Это, однако, означает, что код не оптимизирован так сильно.