Начинающим программистам всегда интересно, чем отличается конфигурация Debug от Release.
Привожу свой ответ на этот вопрос.
Главное различие состоит в назначении: конфигурация Debug предназначена для компиляции на этапе разработки и отладки программы, а Release - для сборки программы и последующего её использования пользователями программы.
Поэтому:
Привожу свой ответ на этот вопрос.
Главное различие состоит в назначении: конфигурация Debug предназначена для компиляции на этапе разработки и отладки программы, а Release - для сборки программы и последующего её использования пользователями программы.
Поэтому:
- В конфигурации Release удаляется отладочная информация из исполняемого файла. Это приводит к уменьшению размера исполняемого файла (обычно в несколько раз).
- Исключаются дополнительные проверки. Например, инициализированы переменные или нет:
#include <iostream> int main() { int x; std::cout << x << std::endl; return 0; }
Из приведёного рисунка видно, что в конфигурации Release никаких проверок не осуществляется, а в конфигурации Debug они есть. Так в STL, например, производятся дополнительные проверки итераторов перед операциями инкремента и декремента:
Поэтому в конфигурации Release программа может работать значительно быстрее, но и могут возникнуть новые ошибки, если код недостаточно хорошо написан и протестирован. - Производится оптимизация по уменьшению времени выполнения. По ссылке представлено описание возможных оптимизаций на примере компилятора C#.
- Используются разные версии библиотек. Поэтому для запуска исполняемого файла на компьютере пользователя требуется установить соответствующие библиотеки. Для исполняемого файла, скомпилированного в конфигурации Debug, используются библиотеки с суффиксом D:
Единственный способ установить их - скопировать необходимые DLL с компьютера разработчика. Для исполняемого файла, скомпилированного в конфигурации Release, можно установить все необходимые библиотеки из распространяемого пакета Microsoft Visual C++, чтобы избежать такой ошибки:
- В общем случае используются разные настройки проекта - для каждой конфигурации своя. В меню "Проект" > "Свойства" можно увидеть выпадающий список, определяющий конфигурацию, для которой производится настройка:
Изменять настройки проекта следует синхронно: для Debug и Release друг за другом, чтобы не допустить ситуации, когда, например, в Debug используются библиотеки OpenGL, а в Release их нет.
спасиб
ОтветитьУдалитьБлагодарю
ОтветитьУдалитьСпасибо
ОтветитьУдалить