Как релизнуть программу visual studio

Обновлено: 02.07.2024

Прежде чем мы сможем написать нашу первую программу, нам нужно научиться создавать новые программы в нашей интегрированной среде разработки (IDE). В этом уроке мы расскажем, как это сделать, а вы скомпилируете и запустите свою первую программу!

Проекты

Чтобы написать программу на C++ внутри IDE, мы обычно начинаем с создания нового проекта (мы покажем вам, как это сделать чуть позже). Проект – это контейнер, в котором хранятся все файлы исходного кода, изображения, файлы данных и т.д., которые необходимы для создания исполняемого файла (или библиотеки, веб-сайта и т.д.), который вы сможете запускать или использовать. Проект также сохраняет различные настройки IDE, компилятора и компоновщика, а также запоминает, где вы остановились, чтобы позже, при повторном открытии проекта состояние IDE можно было восстановить с того места, где вы остановились. Когда вы решите скомпилировать свою программу, все файлы .cpp в проекте будут скомпилированы и слинкованы.

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

Лучшая практика

Создавайте новый проект для каждой новой программы, которую вы пишете.

Консольные проекты

Когда вы создаете новый проект, вас обычно спрашивают, проект какого типа вы хотите создать. Все проекты, которые мы создадим в этом руководстве, будут консольными. Консольный проект означает, что мы собираемся создавать программы, которые можно запускать из консоли Windows, Linux или Mac.

Ниже показан скриншот консоли Windows:

Рисунок 1 Консоль Windows

Рисунок 1 – Консоль Windows

По умолчанию консольные приложения не имеют графического пользовательского интерфейса (GUI), они выводят текст на консоль, считывают ввод с клавиатуры и компилируются в автономные исполняемые файлы. Они идеально подходят для изучения C++, поскольку сводят сложность к минимуму и обеспечивают работу в самых разных системах.

Не беспокойтесь, если вы никогда раньше не пользовались консолью или не знаете, как получить к ней доступ. Мы будем компилировать и запускать наши программы через наши IDE (которые при необходимости будут вызывать консоль).

Рабочие пространства / решения

Когда вы создаете новый проект для своей программы, многие IDE автоматически добавляют ваш проект в «рабочее пространство» («workspace» или «solution») (термин зависит от IDE). Рабочее пространство – это контейнер, который может содержать один или несколько связанных проектов. Например, если вы пишете игру и хотите иметь отдельные исполняемые файлы для одиночной и многопользовательской игры, вам нужно будет создать два проекта. Обоим этим проектам не имело бы смысла быть полностью независимыми – в конце концов, они являются частью одной игры. Скорее всего, каждый из них будет настроен как отдельный проект в рамках одного рабочего пространства.

Хотя вы можете добавить несколько проектов в одно рабочее пространство, мы обычно рекомендуем создавать новое рабочее пространство для каждой программы, особенно во время обучения. Это проще, и вероятность того, что что-то пойдет не так, меньше.

Написание вашей первой программы

Традиционно у программистов, пишущих на новом языке, первой программой является печально известная программа hello world, и мы не собираемся лишать вас этого опыта! Вы нас потом поблагодарите. Может быть.

Создание проекта в Visual Studio 2019

Когда вы запустите Visual Studio 2019, вы должны увидеть диалоговое окно, которое выглядит следующим образом:

Рисунок 2 Диалоговое окно Начало работы Visual Studio 2019

Рисунок 2 – Диалоговое окно «Начало работы» Visual Studio 2019

Выберите Создание проекта (Create a new project).

После этого вы увидите диалоговое окно, которое выглядит следующим образом:

Рисунок 3 Visual Studio 2019: диалоговое окно создания нового проекта

Рисунок 3 – Visual Studio 2019: диалоговое окно создания нового проекта

Если вы уже открыли предыдущий проект, вы можете открыть это диалоговое окно через меню Файл (File) → Создать (New) → Проект (Project).

Выберите Мастер классических приложений Windows (Windows Desktop Wizard) и нажмите Далее (Next). Если вы этого не видите, то вы, вероятно, при установке Visual Studio забыли выбрать установку Desktop development with C++. В этом случае вернитесь к уроку «0.6 – Установка интегрированной среды разработки (IDE)» и переустановите Visual Studio, как было показано (примечание: вместо полной переустановки вы можете запустить установщик Visual Studio и изменить существующую установку, чтобы добавить поддержку C++).

Далее вы увидите диалоговое окно, которое выглядит следующим образом:

Рисунок 4 Диалоговое окно настройки нового проекта Visual Studio 2019

Рисунок 4 – Диалоговое окно настройки нового проекта Visual Studio 2019

Замените существующее имя проекта на HelloWorld .

Рекомендуется также установить флажок «Поместить решение и проект в одном каталоге» (Place solution and project in the same directory), поскольку это сокращает количество подкаталогов, создаваемых с каждым проектом.

Нажмите Создать (Create), чтобы продолжить.

Наконец, вы увидите последнее диалоговое окно:

Рисунок 5 Диалоговое окно параметров проекта Visual Studio 2019

Рисунок 5 – Диалоговое окно параметров проекта Visual Studio 2019

Убедитесь, что тип приложения установлен как Консольное приложение (.exe) (Console Application (.exe)), и что параметр Предкомпилированный заголовок (Precompiled Header) не выбран. Затем нажмите ОК.

Вы создали проект! Чтобы продолжить, перейдите в раздел Обозреватель решений Visual Studio ниже.

Создание проекта в Visual Studio 2017 или в более ранней версии

Чтобы создать новый проект в Visual Studio 2017 или более ранней версии, выберите меню Файл (File) → Создать (New) → Проект (Project). Появится диалоговое окно, которое выглядит примерно так:

Рисунок 6 Диалоговое окно Новый проект Visual Studio 2017

Рисунок 6 – Диалоговое окно «Новый проект Visual Studio 2017»

Сначала убедитесь, что слева указан Visual C++. Если вы не видите Visual C++, возможно, вы забыли выбрать установку поддержку Desktop development with C++ при установке Visual Studio. В этом случае вернитесь к уроку «0.6 – Установка интегрированной среды разработки (IDE)» и переустановите Visual Studio, как было показано (примечание: вместо полной переустановки вы можете запустить установщик Visual Studio и изменить существующую установку, чтобы добавить поддержку C++).

Если вы используете Visual Studio 2017 v15.3 или новее, под Visual C++ выберите Windows Desktop, а затем выберите Windows Desktop Wizard в главном окне.

Если вы не видите вариант с Windows Desktop, возможно, вы используете старую версию Visual Studio. Отлично. Вместо этого выберите Win32, а затем Win32 Console Application в главном окне.

Внизу в поле Name введите название своей программы (замените существующее имя на HelloWorld ). В поле Location вы можете при желании выбрать другое место для размещения вашего проекта. Пока подойдет и значение по умолчанию.

Нажмите ОК. Если вы используете старую версию Visual Studio, запустится мастер приложений Win32. Нажмите Next.

На этом этапе вы должны увидеть диалоговое окно мастера, которое выглядит примерно так (более старые версии Visual Studio используют другой стиль, но имеют большинство из тех же параметров):

Рисунок 7 Мастер создания десктопного приложения Visual Studio 2017

Рисунок 7 – Мастер создания десктопного приложения Visual Studio 2017

Убедитесь, что вы сняли флажок Предкомпилированный заголовок (Precompiled Header).

Затем нажмите ОК или Finish. Теперь ваш проект создан!

Обозреватель решений Visual Studio

В левой или правой части окна вы должны увидеть окно под названием Обозреватель решений. В этом окне Visual Studio создала для вас решение (решение "HelloWorld"). Внутри него, имя которого выделено жирным шрифтом, находится ваш новый проект ( HelloWorld ). Visual Studio создала для вас в этом проекте ряд файлов, в том числе HelloWorld.cpp (в элементе дерева Исходные файлы (Source Files)). Вы также можете увидеть некоторые другие файлы .cpp или .h, которые пока можете игнорировать.

Рисунок 8 Начальные окна Visual Studio 2019

Рисунок 8 – Начальные окна Visual Studio 2019

В текстовом редакторе вы увидите, что Visual Studio уже открыла HelloWorld.cpp и создала для вас код. Выделите и удалите весь код и введите/скопируйте следующий код в вашу IDE:

Чтобы скомпилировать программу, либо нажмите F7 (если это не сработает, попробуйте Ctrl + Shift + B ), либо перейдите в меню Сборка (Build) → Собрать решение (Build Solution). Если всё пойдет хорошо, вы должны увидеть следующее в окне вывода:

Или, в зависимости от выбранного языка:

Это означает, что ваша компиляция прошла успешно!

Вы забыли отключить предварительно скомпилированные заголовки при создании проекта. Заново создайте свой проект (в соответствии с инструкциями выше) и обязательно отключите предварительно скомпилированные заголовки.

Чтобы запустить скомпилированную программу, нажмите Ctrl + F5 или перейдите в меню Отладка (Debug) и выберите Запуск без отладки (Start Without Debugging). Вы увидите следующее:

Рисунок 9 Запуск программы

Рисунок 9 – Запуск программы

Это результат выполнения вашей программы! Поздравляем, вы скомпилировали и запустили свою первую программу!

Создание проекта в Code::Blocks

Чтобы создать новый проект, перейдите в меню File (Файл) → New (Новый) → Project (Проект). Появится диалоговое окно, которое выглядит следующим образом:

Рисунок 10 Code::Blocks. Диалоговое окно создания проекта

Рисунок 10 – Code::Blocks. Диалоговое окно создания проекта

Выберите Console application (консольное приложение) и нажмите кнопку Go (перейти/создать).

Если вы видите диалоговое окно мастера консольного приложения, нажмите Next (далее), убедитесь, что выбран C++, и снова нажмите Next.

Теперь вам будет предложено назвать ваш проект. Назовите проект HelloWorld . Вы можете сохранить его где угодно. В Windows мы рекомендуем сохранить его в подкаталоге диска C, например C:\CBProjects .

Рисунок 11 Code::Blocks. Диалогове окно сохранения проекта

Рисунок 11 – Code::Blocks. Диалогове окно сохранения проекта

Вы можете увидеть другое диалоговое окно с вопросом, какие конфигурации вы хотите включить. Значения по умолчанию здесь подойдут, поэтому выберите Finish.

Теперь ваш новый проект создан.

В левой части экрана вы должны увидеть окно Management (управление) с выбранной вкладкой Projects (проекты). Внутри этого окна вы увидите папку Workspace с вашим проектом HelloWorld внутри:

Рисунок 12 Code::Blocks. Workspace

Рисунок 12 – Code::Blocks. Workspace

Внутри проекта HelloWorld разверните папку Sources (исходники) и дважды щелкните на « main.cpp ». Вы увидите, что для вас уже написана программа hello world!

Замените ее следующим кодом:

Чтобы собрать проект, нажмите Ctrl + F9 или перейдите в меню Build (Сборка) → Build (Сборка). Если всё пойдет хорошо, вы должны увидеть следующее в окне журнала сборки:

Это означает, что компиляция прошла успешно!

Чтобы запустить скомпилированную программу, нажмите Ctrl + F10 или перейдите в меню Build (Сборка) → Run (Запуск). Вы увидите что-то похожее на следующий скриншот:

Рисунок 13 Запуск программы

Рисунок 13 – Запуск программы

Это результат выполнения вашей программы!

Для пользователей Linux

Пользователям Linux до компиляции в Code::Blocks может потребоваться установить дополнительные пакеты. Дополнительные сведения смотрите в инструкциях по установке Code::Blocks в уроке «0.6 – Интегрированная среда разработки (IDE)».

Если вы используете g++ из командной строки

В этом случае создавать проект не нужно. Просто вставьте следующий код в текстовый файл с именем HelloWorld.cpp и сохраните файл:

В командной строке введите:

Это скомпилирует и слинкует HelloWorld.cpp . Чтобы запустить скомпилированную программу, введите:

И вы увидите результат выполнения своей программы.

Если вы используете другие IDE или веб-компилятор

Вам нужно будет самостоятельно выяснить, как сделать следующее:

  1. создать консольный проект (только для IDE);
  2. добавить в проект файл .cpp (только для IDE, если он для вас не был создан автоматически);
  3. вставить в файл следующий код:
  4. скомпилировать проект;
  5. запустить проект.

Если компиляция завершилась ошибкой

Во-вторых, посмотрите вопросы и ответы в уроке «0.8 – Несколько распространенных проблем C++», поскольку ваша проблема может быть там освещена.

В-третьих, прочтите комментарии ниже – кто-то мог столкнуться с той же проблемой.

Если ваша программа запускается, но окно мигает и сразу закрывается

Некоторые IDE автоматически не приостанавливают экран консоли после завершения выполнения программы. Ваша программа запускается, но окно вывода закрывается, прежде чем вы сможете просмотреть результаты.

Если это так с вашей IDE, следующие два шага решат вашу проблему:

Во-вторых, добавьте следующий код в конец функции main() (непосредственно перед оператором return ):

Это приведет к тому, что ваша программа будет ждать, пока пользователь нажмет какую-нибудь клавишу, прежде чем продолжить, что даст вам время изучить вывод вашей программы, прежде чем IDE закроет окно консоли.

Другие решения, такие как обычно предлагаемое system("pause") , могут работать только в определенных операционных системах, и их следует избегать.

Ваш антивирус также может блокировать выполнение программы. В таком случае попробуйте временно отключить его и посмотреть, решится ли проблема.

Для пользователей Visual Studio

Visual Studio не будет в конце делать паузу в работе консольного приложения, если оно запускается с отладкой (меню Отладка (Debug) → Начать отладку (Start Debugging)). Если вы хотите, чтобы она сделала паузу, вы можете либо использовать приведенное выше решение с дополнительным кодом, либо запустить свою программу без отладки (меню Отладка (Debug) → Начать отладку (Start Without Debugging)).

Заключение

Поздравляем, вы прошли самую сложную часть этого руководства (установку IDE и компиляцию вашей первой программы)!

Не волнуйтесь, если не понимаете, что делают все строки в программе HelloWorld . Мы рассмотрим и подробно объясним каждую строку в начале следующей главы.

Салют!
Уже долгое время бьюсь над проблемой, когда созданный на одном компьютере проект не работает на другом. Все длл я собрал в папку с программой, но дело в том, что эти самые длл ищутся сначала в системных папках, и, если там найдена таковая, используют ее. А версии длл'ек часто различаются. Нет ли способа каким-либо образом вручную указать, какие именно длл и откуда их необходимо проверять в первую очередь?
В частности, с переносом с win7 на win7 вроде разобрался (в настройках режим \MT поставил, и на парочке проверенных это работает), но вот при попытке запустить на XP уже возникают проблемы (хотя это как раз таки самый актуальный вопрос).

P.s.
1. Хотелось бы обойтись без установки redist на этом компе;

2. Недавно встретил такую программу, как ILMerge, для сборки exe и всех длл'ек в один файл, но походу она конкретно в этом случае не подходит (проверено). Может, есть какие-либо аналоги именно для программы, написанной на VS?

Открытие проекта в более старой версии Visual Studio
Народ, помогите пожалуйста. Делал проект в VS 2012 и не могу открыть его в 2010. Как бы решить эту.

Visual Studio 2010 (создание проекта)
Кто пользовался Microsoft Visual Studio 2010. Кто там создавал MFC Application? У меня такая.

Visual studio 2013 и создание проекта
При попытке создать новый образ на языке си (консольное окно) visual выдает ошибку типа "невозможно.

Создание нового проекта в Visual Studio
Не знаю в какую ветку разместить. Помню, когда учился, мы работали в Visual Studio и я создавал.

Решение

Первое, в чем необходимо убедиться - что программа не использует функции, которые могут
отсутствовать на целевых версиях Windows. Например, InitializeCriticalSectionEx поддерживается,
начиная с Windows Vista, а CreateFile2 вообще есть только на Windows 8 и Windows Server 2012.
Один из способов достичь этого - задавать целевые версии самому, через макроопределения.
Следующий фрагмент разрешает включать из стандартных заголовков SDK только те объявления,
которые имеют смысл для Windows XP (0x0501 - это номер версии NT для Windows XP (5.1), а
0x0600 - это версия Internet Explorer для этой системы, в данном случае шестая):

Это не панацея, но решение 90% проблем данного класса. Хотя некоторые все равно останутся.
Например exe, собранный в Visual C++ 2010, имеет зависимость от функций EncodePointer и
DecodePointer, и поэтому не запустится на Windows Server 2003 RTM (который без R2 и без
сервис-пака), так как на данной системе эти функции отсутствуют. А вот Visual C++ 2008
такой проблемы не имел.

Бывает, что программе, если она запускается на новых системах, нужны некоторые новые
функции, в этом случае следует определять номер версии Windows (GetVersionEx) и
загружать необходимые dll динамически - LoadLibrary/GetProcAddress.
При этом следует учитывать, что программа может быть запущена в режиме совместимости.

Второе - проверить, что программа не имеет зависимостей от dll, которые могут отсутствовать
на целевых системах. Распостраненный случай - отсутствие нужной версии Visual C++ Runtime.
В Visual C++ 2008 рантайм был сделан как SxS-сборки и его нужно было либо включать в инстяллятор
программы, как Merge Module или vcredist.exe, либо делать в каталоге с установленной программой
дополнительную подпапку со специальным именем и помещать сборку туда. В Visual C++ 2010 решение
проблемы упростили и рантайм (msvcr100.dll/msvcp100.dll) теперь подключается, как обычная dll,
без манифестов и прочих сложностей. Хотя вы можете по-прежнему включать в инсталлятор программы
Visual C++ 2010 Redistributable, он просто скопирует файлы рантайма в папку Windows\system32.

Ключ /MT компилятора тоже может помочь, в этом случае рантайм подключается статически и
зависимостей от msvcr100.dll/msvcp100.dll не будет. Хотя данный способ не всегда возможен.

Еще находить проблемы совместимости очень помогает использование виртуальных машин.
Можно сделать себе целый "зоопарк" разных виртуальных систем и конфигураций и перед каждым
релизом софта тестировать его на этих системах.

В наше время open source проекты все популярнее. На площадках открытых проектов, например, на github можно найти множество полезных программ, но они не всегда имеют исполняемые файлы ("exe"), поэтому я постараюсь рассказать о том, как можно собрать самостоятельно C/C++ программу, из исходников, написанную на Microsoft Visual Studio.

Первым делом нам необходимо загрузить онлайн установщик Microsoft Visual Studio, с официального сайта. Для компиляции С/С++ проектов нет необходимости во всех пакетах и можно выбрать только те, которые нам необходимы.

Установщик загрузит необходимые пакеты из интернета и установит их.

После установки Visual Studio можно убедиться, что всё работает создав тестовый проект и скомпилировав его. Для этого нажмите в меню "Файл" → "Создать" → "Проект. "

После чего появится диалог выбора типа проекта, где можно выбрать:

  • Консольное приложение;
  • Классическое приложение;
  • Библиотеку динамической компоновки (dll);
  • Статическую библиотеку;

В нашем случае для быстрой проверки подойдет консольное приложение, выбираем название и папку проекта , после чего жмём кнопку "ОК" и создается наша программа.

После этого остается остается лишь скомпилировать её, для этого нужно выбрать в меню "Сборка" и нажать на пункт "Собрать решение".

Далее наш проект скомпилируется и в папке проекта появится наш тестовый исполняемый файл ("exe").

Если всё работает как надо, то можно приступать к сборке какого-нибудь другого открытого проекта с github или другого хостинга проектов.

Первым делом нам нужно загрузить исходники проекта. На площадке github это делается довольно просто, жмем на кнопку "Code" и "Download ZIP". После чего нужно распаковать его и можно приступать к сборке.

Ищем файл с расширением "<название_проекта>.vcxproj" и запускаем его. Перед нами появится диалог в котором нам предложат обновить SDK проекта (набор библиотек для разработки, которые Microsoft периодически обновляет) и набор инструментов, жмём обновить.

Теперь наш проект можно собрать, но до сборки необходимо выбрать разрядность проекта (например, для 32 битной системы или 64 битной), а также тип сборки (отладочный режим - debug или release).

Выбираем 64 битную систему и тип сборки релиз, после чего компилируем проект. Как и ранее нужно выбрать в меню "Сборка" и нажать на пункт "Собрать решение".

Некоторые проектам требуется вручную изменить SDK и набор инструментов, на установленный у вас, для этого идём в свойства проекта, выбираем сверху типа сборки и разрядность системы и уже там изменяем SDK и набор инструментов. В выпадающем меню появляются установленные у нас версии, выбираем их и нажимаем "ОК". После чего наш проект скомпилируется.

Бывает, что проект использует сторонние библиотеки, для этого их нужно загрузить отдельно и положить в папку. Узнать путь или изменить его можно в свойстве проекта, в разделе "С/C++" → "Общие" → "Дополнительные каталоги включаемых файлов".

Бывает, что SDK или набор инструментов, в свойстве проекта не изменяется в диалоге, чтобы изменить их нужно записать номер SDK, закрыть Visual Studio и вручную, блокнотом изменить этот номер в файле проекта "<название_проекта>.vcxproj".

При возникновении других проблем можно попробовать их загуглить, возможно, что кто-то уже сталкивался с ними и решил их.

Проекты Visual Studio имеют отдельные конфигурации выпуска и отладки для вашей программы. Visual Studio projects have separate release and debug configurations for your program. Вы создаете отладочную версию для отладки и версию выпуска для окончательного распространения выпуска. You build the debug version for debugging and the release version for the final release distribution.

В конфигурации отладки программа компилируется с полной символьной отладочной информацией и без оптимизации. In debug configuration, your program compiles with full symbolic debug information and no optimization. Оптимизация усложняет отладку, поскольку усложняется связь между исходным кодом и сгенерированными инструкциями. Optimization complicates debugging, because the relationship between source code and generated instructions is more complex.

Конфигурация выпуска программы не имеет символьной отладочной информации и полностью оптимизирована. The release configuration of your program has no symbolic debug information and is fully optimized. Для управляемого кода C++ и кода отладочная информация может быть создана в PDB-файлах в зависимости от используемых параметров компилятора . For managed code and C++ code, debug information can be generated in .pdb files, depending on the compiler options that are used. Создание PDB-файлов может оказаться полезным, если в дальнейшем потребуется Отладка окончательной версии. Creating .pdb files can be useful if you later have to debug your release version.

Дополнительные сведения о конфигурациях сборки см. в статье Общие сведения о конфигурациях сборки. For more information about build configurations, see Understand build configurations.

Изменение конфигурации сборки Change the build configuration

Чтобы изменить конфигурацию сборки, выполните одно из следующих действий. To change the build configuration, either:

  • В меню Сборка выберите Configuration Manager, а затем выберите Отладка или выпуск. From the Build menu, select Configuration Manager, then select Debug or Release.

или диспетчер конфигурации служб or

На панели инструментов выберите либо Отладка, либо Выпуск из списка Конфигурации решения. On the toolbar, choose either Debug or Release from the Solution Configurations list.

Можно выбрать создание файлов символов (. pdb) и включаемых отладочных данных. You can choose to generate symbol (.pdb) files and what debug information to include. Для большинства типов проектов компилятор создает файлы символов по умолчанию для отладочных и окончательных сборок, в то время как другие параметры по умолчанию отличаются по типу проекта и версии Visual Studio. For most project types, the compiler generates symbol files by default for debug and release builds, while other default settings differ by project type and Visual Studio version.

Отладчик загружает PDB-файл для исполняемого файла, только если он точно соответствует PDB-файлу, который был создан при сборке исполняемого файла (то есть это должен быть либо оригинальный PDB-файл, либо его копия). The debugger will load only a .pdb file for an executable file that exactly matches the .pdb file that was created when the executable was built (that is, the .pdb must be the original or a copy of the original .pdb file). Дополнительные сведения см. в статье почему Visual Studio требует, чтобы файлы символов отладчика точно совпадали с двоичными файлами, с которыми они были созданы?. For more information, see Why does Visual Studio require debugger symbol files to exactly match the binary files that they were built with?.

Каждый тип проекта может иметь другой способ установки этих параметров. Each project type may have a different way of setting these options.

Выберите проект в Обозревателе решений. In Solution Explorer, select the project.

Выберите значок Свойства (или нажмите клавиши ALT + ВВОД). Select the Properties icon (or press Alt+Enter).

В боковой области выберите Сборка (или Скомпилируйте в Visual Basic). In the side pane, choose Build (or Compile in Visual Basic).

В списке Конфигурация выберите Отладка или выпуск. In the Configuration list, choose Debug or Release.

В списке отладочной информации (или в списке создать отладочную информацию в Visual Basic) выберите полная, только PDBили Переносимая. In the Debugging information list (or the Generate debug info list in Visual Basic), choose Full, Pdb-only, or Portable.

Построить проект. Build your project.

Компилятор создает файлы символов в той же папке, что и исполняемый файл, или основной выходного файла. The compiler creates the symbol file(s) in the same folder as the executable or the main output file.

Создание файлов символов для C++ проекта Generate symbol files for a C++ project

Выберите проект в Обозревателе решений. In Solution Explorer, select the project.

Выберите значок Свойства (или нажмите клавиши ALT + ВВОД). Select the Properties icon (or press Alt+Enter).

В списке Конфигурация выберите Отладка или выпуск. In the Configuration list, choose Debug or Release.

В боковой области выберите компоновщик > Отладка, а затем выберите параметры для создания отладочной информации. In the side pane, choose Linker > Debugging, then select options for Generate Debug Info.

Подробные сведения о параметрах проекта для конфигураций отладки C++в см. в разделе Параметры C++ проекта для конфигурации отладки. For detailed information on project settings for debug configurations in C++, see Project settings for a C++ debug configuration.

Настройка параметров для создания файлов базы данных программы. Configure options for Generate Program Database Files.

В большинстве C++ проектов значением по умолчанию является $(OutDir)$(TargetName).pdb , которое создает PDB-файлы в выходной папке. In most C++ projects, the default value is $(OutDir)$(TargetName).pdb , which generates .pdb files in the output folder.

Построить проект. Build your project.

Компилятор создает файлы символов в той же папке, что и исполняемый файл, или основной выходного файла. The compiler creates the symbol file(s) in the same folder as the executable or the main output file.

В чем разница между Debug и Release в Visual Studio?

Другим ключевым отличием является то, что из-за этого значения по умолчанию для выпуска не беспокоятся о генерации обширной информации о символах отладки. Это файл .PDB, который вы, возможно, заметили, и он позволяет отладчику выяснить, какие инструкции по сборке соответствуют адресу строки кода и т.д.

"Debug" и "Release" на самом деле всего две метки для целого множества настроек, которые могут повлиять на вашу сборку и отладку.

В режиме "Отладка" у вас обычно есть следующее:

  • Файлы отладки программы Debug Database, которые позволяют вам внимательно следить за выполнением программы в источнике во время выполнения.
  • Все оптимизации отключены, что позволяет вам проверять значение переменных и трассировки на функции, которые в противном случае могли бы быть оптимизированы или встроены
  • Определение препроцессора _DEBUG, которое позволяет вам писать код, который действует по-разному в режиме отладки по сравнению с версией, например, с инструментами ASSERT, которые должны использоваться только при отладке
  • Связывание с библиотеками, которые также были скомпилированы с параметрами отладки, которые обычно не используются для фактических клиентов (по причинам размера и безопасности).

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

Если вы просмотрите параметры компиляции проекта и сравните их, вы увидите, какие отличия.

Предполагая, что вопрос касается кода native/С++ (это не совсем понятно из фразы):

В принципе, в Debug все оптимизации генерации кода отключены. Некоторые библиотеки (например, STL) по умолчанию используют более строгую проверку ошибок (например, итераторы отладки). Создается дополнительная информация об отладке (например, для "Редактирование и продолжение" ). В коде генерируются больше вещей, чтобы ловить ошибки (значения локальной переменной установлены на неинициализированный шаблон, используется отладочная куча).

В основном, отладка включает много дополнительной информации, полезной при отладке. В режиме выпуска все это вырезано и продается для повышения производительности.

Также обратите внимание, что при использовании MFC, например, проекты отладки ссылаются на нераспространяемые DLL-версии, такие как MFC90D.DLL , а релиз строит ссылку на распространяемые версии, такие как MFC90.DLL . Вероятно, это похоже на другие структуры.

Поэтому вы, вероятно, не сможете запускать приложения для создания отладки на машинах без разработки.

Также, по-видимому, режим Debug создает много дополнительных потоков, чтобы помочь в отладке. Они остаются активными на протяжении всей жизни процесса, независимо от того, прикрепляете ли вы отладчик или нет. См. Мой родственный вопрос здесь.

Очевидное различие, которое вы видите, это размер двоичного файла. Сборка Debug создает большую двоичную версию, чем сборка Release.

При компиляции в Debug таблица символов добавляется в скомпилированный объект файла кода, который позволяет программам отладки использовать эти двоичные файлы и осваивает значения объектов и переменных.

Другая наблюдаемая разница заключается в том, что в режиме Release двоичный код просто сбой при фатальной ошибке в режиме Debug, если вы начнете отладку приложения в Visual Studio, вы можете проверить стек вызовов, который сообщает вам точное местоположение ошибочное утверждение.

RELEASE

DEBUG

Интересно, что в разделе Link они имеют GenerateDebugInformation значение true.

Я не знаю, каковы точные различия, потому что на самом деле нет информации, доступной на этом.

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

К сожалению, вы должны поместить сборку отладки в производство. И да, для публикации вам нужно использовать старый добрый FTP.

Обновл. 21 Фев 2019 |

Конфигурация сборки (англ. «build configuration») – это набор настроек проекта, которые определяют принцип его построения. Конфигурация сборки состоит из: имени исполняемого файла, директории исполняемого файла, в каких директориях IDE будет искать код и заголовочные файлы, информации об отладке и параметров оптимизации вашего проекта.

Интегрированная среда разработки имеет две конфигурации сборки: «Release» (Релиз) и «Debug» (Отладка).

Конфигурация «Debug» предназначена для отладки вашей программы. Эта конфигурация отключает все настройки по оптимизации, включает информацию об отладке, что делает ваши программы больше и медленнее, но упрощает проведение отладки. Режим «Debug» обычно используется в качестве конфигурации по умолчанию.

Конфигурация «Release» используется для сборки программы для её дальнейшего выпуска. Программа оптимизируется по размеру и производительности и не содержит дополнительную информацию об отладке.

Например, исполняемый файл программы «Hello, World!» из предыдущего урока, созданный в конфигурации «Debug», у меня занимал 65 KB, в то время как исполняемый файл, построенный в конфигурации «Release», занимал всего лишь 12 KB.

Переключение между режимами «Debug» и «Release» в Visual Studio

Самый простой способ изменить конфигурацию проекта – выбрать соответствующую из выпадающего списка на панели быстрого доступа:

Debug и release visual studio

Переключение между режимами «Debug» и «Release» в Code::Blocks

В Code::Blocks на панели быстрого доступа есть также выпадающий список, где вы можете выбрать соответствующий режим конфигурации:

Debug и release visual studio

Заключение

Используйте конфигурацию «Debug» при разработке программ, а конфигурацию «Release» при их выпуске (когда уже будете готовы представить программу на всеобщее обозрение).

За репост +20 к карме и моя благодарность!

Урок №5. Компиляция вашей первой программы

Комментариев: 9

Не понятно , зачем нужны два exe файла , полученные в режиме debug и relese?. Есть же файл проекта, в котором можно производить отладку программы. А как запустить exe файл debug для отладки? Этот момент не понятно описан.

Юрий! Спасибо за грамотное, доступное изложение !
Такое я и искал!

А у меня на dev C++ стоит Release мне оставить это или нет?

То есть, использовать конфигурацию Debug при разработке программ чтобы искать ошибки, а release когда уже уверен что всё в порядке и можно выпускать?

В скачанном компиляторе CodeBlocks с самого начала используется Relese(на Debug переключаться не хочет), в дальнейших уроках будут возникать ошибки?

У вас последняя версия CodeBlocks? Пробовали переустанавливать?

Ошибки не будут возникать, если вы их допускать не будете. Работать можно и в версии Release, ошибок насчет самой конфигурации Release возникать не должно.

Читайте также: