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

  Юрий  | 

    | 

  Обновл. 16 Мар 2019  | 

 53347

 ǀ   58 

Перед написанием нашей первой программы мы ещё должны кое-что узнать.

Теория

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

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

В-третьих, при создании нового проекта большинство IDE автоматически добавят ваш проект в рабочее пространство. Рабочее пространство – это своеобразный контейнер, который может содержать один или несколько связанных проектов. Несмотря на то, что вы можете добавить несколько проектов в одно рабочее пространство, всё же рекомендуется создавать отдельное рабочее пространство для каждой программы. Это намного упрощает работу для новичков.

Традиционно, первой программой на новом языке программирования является всеми известная программа «Hello, world!». Мы не будем нарушать традиции 🙂

Пользователям Visual Studio


Для создания нового проекта в Visual Studio 2017, вам нужно сначала запустить эту IDE, затем выбрать «Файл» > «Создать» > «Проект»:

Дальше появится диалоговое окно, где вам нужно будет выбрать «Консольное приложение Windows» из вкладки «Visual C++» и нажать «ОК»:

Также вы можете указать имя проекта (любое) и его расположение (рекомендую ничего не менять) в соответствующих полях.

В правой части экрана, в окне «Обозреватель решений» Visual Studio 2017 создал несколько файлов, включая HelloWorld.cpp, pch.cpp и pch.h.

В текстовом редакторе вы увидите, что уже есть некоторый текст и код – удалите его, а затем напечатайте или скопируйте следующий код:

Вот, что у вас должно получиться:

Чтобы запустить эту программу нажмите Ctrl+F5. Если всё хорошо, то вы увидите следующее:

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

Hello, world!

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

Чтобы убрать строчку «…завершает работу с кодом 0…», вам нужно перейти в «Отладка» > «Параметры»:

Затем «Отладка» > «Общие» и поставить галочку возле «Автоматически закрыть консоль при остановке отладки» и нажать «ОК»:

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

Важное примечание для пользователей Visual Studio: Все ваши программы в Visual Studio ВСЕГДА должны начинаться со строчки:

В противном случае вы получите ошибку.

Пользователям Code::Blocks

Чтобы создать новый проект, запустите Code::Blocks, выберите «File» > «New» > «Project»:

Затем появится диалоговое окно, где вам нужно выбрать «Console application» и нажать «Go»:

Затем выбрать язык C++ и нажать «Next»:

Затем нужно указать имя проекта и его расположение (можете создать отдельную папку Projects) и нажать «Next»:

Затем в следующем диалоговом окне нужно будет нажать «Finish».

После этих манипуляций, вы увидите пустое рабочее пространство. Вам нужно будет открыть папку Sources в левой части экрана и дважды кликнуть по main.cpp:

Вы увидите, что программа «Hello, world!» уже написана!

Для того, чтобы скомпилировать ваш проект, нажмите Ctrl+F9, либо перейдите в меню «Build» и выберите «Build». Если всё пройдет хорошо, вы должны увидеть следующее во вкладке «Build log»:

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

Чтобы запустить скомпилированную программу, нажмите Ctrl+F10, либо перейдите в меню «Build» и выберите «Run». Вы увидите следующее окно:

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

Пользователям командной строки


Вставьте следующий код в текстовый файл с именем HelloWorld.cpp:

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

g++ -o HelloWorld HelloWorld.cpp

Это команда выполнит компиляцию и линкинг файла HelloWorld.cpp. Для запуска программы напишите:

HelloWorld

или

./HelloWorld

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

Пользователям веб-компиляторов

Вставьте следующий код в рабочее пространство:

Затем нажмите «Run». Вы должны увидеть результат в окне выполнения.

Пользователям других IDE


Вам нужно:

1. Создать консольный проект.

2. Добавить файл .cpp в проект (если нужно).

3. Вставить следующий код в файл .cpp:

4. Скомплировать проект.

5. Запустить проект.

Если компиляция прошла неудачно (a.k.a. «О Боже, что-то пошло не так!»)

Всё нормально, без паники. Скорее всего, это какой-то пустяк.

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

Во-вторых, просмотрите Урок №7 – там есть решения к наиболее распространённым проблемам.

Если не помогло – загуглите проблему. С вероятностью в 90% кто-то уже сталкивался с этим раньше и нашёл решение.

Заключение

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

Оценить статью:

Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (319 оценок, среднее: 4,88 из 5)
Загрузка...

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

  1. Аватар Владимир:

    Попытался сделать через командную строку а мне пишут "g++ не является командой исполняемой программой или пакетным фвйлом

  2. Аватар Анастасия:

    Здравствуйте! Установила по ссылке из 4го урока Visual Studio 2019. После перезагрузки компьютера (она требовалось установщиком) не нашла новой иконки на рабочем столе. После долгих поисков нужной иконки в новых установленных папках, в итоге запустила программу через установщик… Затем пришлось зарегистрировать учётную запись и зайти под ней.
    Первую программу удалось запустить по инструкции успешно, НО только после удаления строчки "#include "pch.h"", хотя Вы пишете, что эта строчка для работы в VS обязательна. У меня есть два вопроса:
    1) Как сделать иконку для запуска Visual Studio 2019 на рабочем столе?
    2) Может быть, с новыми версиями VS отпала необходимость в строчке #include "pch.h"? С этой строчкой первая программа не запускается, fatal error C1083: Не удается открыть файл включение: pch.h: No such file or directory

    1. Аватар Вадим:

      Тоже после удаления этой строчки, все запустилось

    2. Аватар максим:

      Если Вы не знаете таких простых вещей у меня вопрос. Зачем вы учите C++?

      1. Аватар Вадим:

        Ага, это из той серии… А зачем ты идешь на работу, если у тебя даже опыта нет? Не за тем ли, чтобы его получить?
        P.S. Очень важно научится, не отвечать вопросом на вопрос.

      2. Аватар Анастасия:

        Максим, Вы про иконку? Да, я и вправду не знаю, как её найти, откуда вытащить. А Вы знаете? Так подскажите! Я из-за этой "простой" трудности стала пользоваться другой IDE (DEV C++)
        Не думаю, что эта "простая" вещь связана с моей мотивацией изучать С++. В остальном почти всё идёт гладко, я уже на 55 уроке, а Вы?

      3. Юрий Юрий:

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

    3. Аватар Анастасия:

      Откопала-таки ярлык Visual Studio, чтобы вытащить его на рабочий стол. Для тех, кто столкнулся с такой же проблемой, вот путь к ярлыку, если устанавливали по инструкции:
      C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE
      файл называется devenv и имеет тип "Приложение"

      1. Юрий Юрий:

        Я тоже не мог найти этот ярлык никак при установке именно новых версий Visual Studio. Спасибо вам за решение.

  3. Аватар Бабкен:

    Здравствуйте, Юрий. Огромное спасибо вам за лекции!
    Я скачал себе Visual studio 2019 года. При создании консольного приложения у меня отсутствует файл pch.h и программа работает без него. Я видел комментарий, связанный с тем, что человек запускал пустой проект, но я запускаю консольное приложение. Может это связано с тем, что в 2019 году они обновили версию и убрали данный файл?

    1. Аватар Никита:

      Чтобы это решить надо зайти в Проект->Свойства->C/C++->Все параметры И параметр "Предварительно откомпилированный заголовок поставить на Не использовать предварительно….

      1. Аватар Алексей:

        У меня была такая же проблема. Выяснилось, что VS 2019 ни в какую не хочет сам создавать файлы pch.cpp и pch.h, создал вручную (ничего не писал в обоих) — заработало… Вот только вопрос, это вообще нормально, что пришлось их вручную создавать?

      2. Аватар Дмитрий:

        Добрый день , также проблема . На Visual Studio 2019 не создаются Файлы pch.cpp и pch.h, если не добавлять строку #include “pch.h” , то все работает нормально, при добавлении пришлось это Файлы создавать в ручную. Изменения в свойствах Предварительно откомпилированный заголовок — На неиспользать предварительно … Ничего не дало. Интересно как — то решается эта проблема ?

        1. Юрий Юрий:

          Если у вас всё работает без добавления строчки
          <pre>#include <pch.h></pre>
          То совершаеть лишние телодвижения не нужно.

  4. Аватар Dweeni:

    Связано с Visual Studio 2017.
    Когда хочу создать проект консолный его просто нету для си++.
    как не искал не смог найти что делать?

  5. Аватар Эзиз:

    ДА! у меня получилось на DevC++))

  6. Аватар Олег:

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

    1. Юрий Юрий:

      Ответ есть в уроке №7.

  7. Аватар Алексей:

    Здравствуйте, у меня при создании нового проэкта ошибка Exception from HRESULT 0x80041FE2. Что мне делать?

    1. Аватар Kaladgan:

      Установи visual c++ 2015 должно помочь

  8. Аватар Pifagorec:

    Спасибо, всё здорово!
    Только в С++ для WIN 7х32 клавиша запуск "F5",
    А подключаемый файл командой #include "pch.h",
    вместо #include "stdafx.h"

    1. Юрий Юрий:

      В версии Visual Studio 2017:

      Заменили на:

      1. Аватар Ашот:

        это меня спасло спасибо!

      2. Аватар Евген:

        Я в VS 2017 пишу на пустом проекте и у меня не требует pch.h, проекты работают. Может я делаю что-то не так?

        1. Юрий Юрий:

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

  9. Аватар илья:

    мой visual studio community 2017 внезапно стал платным, подскажите что делать?

    1. Аватар Константин:

      Илья, а ты регистрировался на сайте Microsoft-a при скачивании загрузочного файла? Я вот только надумал этот Visual Community 2017 скачать и на твой вопрос наткнулся — сразу подумал: это если я зарегистрируюсь, то они и до моей ОС доберутся. И вообще, народ! Это только Илье предложили раскошелится или кто-то ещё был "удивлён"?!

      1. Аватар Денис (MegaTech):

        Кхм, если он брал не Community версию VS или Community, но не регался — с него попросят. Если Комьюнити — зарегайся, если не Комьюнити — ставь её или плати.

    2. Аватар Геннадий:

      Платить!

  10. Аватар Koh:

    MVS 2017.
    вместо "stdafx.h" используется "pch.h".
    мне жалко мои потерянные нервы

    1. Аватар Дмитрий:

      Спасибо тебе большое , я уже второй день не мог понять в чём проблема

    2. Аватар Pifagorec:

      Согласен, у меня ещё вместо F7 на выполнение клавиша F5

  11. Аватар Artem:

    Дружище ,огромное спасибо!Перепробовал кучу книг,статей и прочих источников для «чайников» ,но ничего понятного для меня на находилось.Не было понятной структуры ,что и для чего.Подписался ,надеюсь дальше будет все с таком же формате.Еще раз спасибо,если и дальше так пойдёт ,придётся донатить тебе ,ибо не донатить совесть не позволит ,за такой понятный материал))

    1. Юрий Юрий:

      Спасибо, друг, что читаешь 🙂 Сам искал понятный ресурс с четкой структурой, когда удалось найти — решил поделиться с Рунетом.

  12. Аватар Константин:

    Юра, пожалуйста, распиши как создавать новый workspace. Спасибо.

  13. Аватар Евгений:

    Офигеть, наконец то кто-то нормально рассказал и учёл все возможные варианты. Спасибо, на данный момент автор — лучший в рунете (на моей памяти)

    1. Юрий Юрий:

      Хорошими знаниями нужно делиться 🙂

  14. Аватар Даниил:

    У меня нет Win32. Вроде бы я всё устанавливал, правильно. С чем это связано? Можно ли использовать обычный файл?

    1. Юрий Юрий:

      В обновлениях Visual Studio Win32 убрали. Ориентируйтесь на то, чтобы было Console Application и C++ — это самое главное.

      1. Аватар Станислав:

        Здравствуйте. Наткнулся на такую проблему. У меня нету пункта win 32 и Console Application . Только консольное приложение windows. Подскажите что делать.

        1. Юрий Юрий:

          Привет, выбирать "Консольное приложение Windows".

  15. Аватар SV:

    пробую использовать Code::Blocks
    программа из примера компилируется, запускается.
    Потом закрываю консольное окно и пробую редактировать текст Hello world. Пробую снова компилировать — ошибка. Жду некоторое время(несколько минут) — снова компилирую — компилируется нормально. Если редактировать и сразу компилировать — то компилируется нормально, а если пробовать запускать — то после нормального запуска и последующей попытки редактирования — ошибка. и надо ждать несколько минут.
    Проблема связана с консолью? Что то где то ждёт не закрытое\не завешённое?

    1. Юрий Юрий:

      Вы после редактирования сохраняете изменения? И когда вы запустили и программа выполнилась — вы после этого останавливаете режим отладки?

      1. Аватар SV:

        Я по разному пробовал (с поправкой только начал вообще знакомиться с предметом и средой). И сохранять пытался, и стирать, но всё это работает пока не запущу программу на выполнение. После того как она выполнилась(окно закрываю!) — редактирование и компиляция без ошибок возможны только по истечении некоторого времени.

        1. Юрий Юрий:

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

  16. Аватар ctcu:

    Добрый день!

    Несколько дней ушло на не найденный ответ по ошибке:
    не удалось загрузить импортированный файл проекта
    C:\Users\…\AppData\Local\Microsoft\MSBuild\v4.0\
    Microsoft.Cpp.Win32.user.props Отсутствует корневой элемент
    Где можно посмотреть?

    1. Юрий Юрий:

      «Cистема проектов Visual C++ основана на MSBuild, значения хранятся в XML-файле проекта по умолчанию .props и .targets файлов, что (для Visual Studio 2015) находятся в ВашДиск\Program Files(x86)\MSBuild\Microsoft.Cpp\v4.0\V140 и в пользовательских PROPS-файлов, которые требуется добавить. Настоятельно рекомендуется НЕ изменять файлы вручную» — msdn.microsoft.com/ru-ru/library/.

      Попробуйте удалить весь свой Visual Studio и установить заново в точном соответствии с уроком 4.

  17. Аватар Андрей Оганесян:

    Здравствуйте, такая проблема: всё написал, скомпилировал, но при запуске в консоли выдаётся "Для продолжения нажмите любую клавишу . . . " и никакого hello world..( Помогите может я что-то не так сделал?(

    1. Юрий Юрий:

      Привет, смотрите урок 7.

  18. Аватар Natiq:

    на visual 2017 не как не хочет компелировать, выдает ошибку windowsproject4.cpp(8): fatal error C1010: непредвиденный конец файла во время поиска

    1. Юрий Юрий:

      Скорее всего, вы не добавили stdafx.h:

      Смотрите Урок 7. Самые распространенные проблемы в C++.

      1. Аватар Koh:

        prntscr.com/kvua5u
        изменено название файла

  19. Аватар Pavel:

    Спасибо за описание. Программа запустилась и работает (правда пришлось повозиться с установкой компилятора, писал, что can’t find compiler executable in your search path (GNU GCC compiler). Вопрос решил. Но если вместо «Hello world» написать что-либо на кириллице — то на экране видна абракадабра. В чем проблема? Использую Code::Blocks

    1. Юрий Юрий:

      Проблема в кодировке. Для корректного отображения кириллицы в консольном окне — добавьте заголовочный файл:

      и пропишите следующую строчку кода в main:

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

      и пропишите в main:

  20. Аватар Jaan:

    Многообещающее начало изучения сложной для меня темы такой как си++ очень много вопросов как и положено новичку. Некоторые моменты хотелось бы поподробнее получить в виде объяснения. В общем пока я доволен вашим сайтом. Спасибо!

    1. Юрий Юрий:

      Пожалуйста, читайте — учитесь.

      1. Аватар Новичок:

        Как создать первую программу есть, но нет объяснения, что мы, первом делом подключаем библиотеки, что такое std и что такое cout, почему в конце стоит return 0, и было бы не плохо добавить вариации кода… По мне, так этот код выглядит легче:

        Директива using, дает непосредственный доступ к элементам из пространства имен std.

        Но есть и такой вариант:

        1. Юрий Юрий:

          Этот урок посвящен первой компиляции первой программы. Что такое return, cout, std — рассказывается детально в следующих соответствующих уроках.

Добавить комментарий

Ваш E-mail не будет опубликован. Обязательные поля помечены *