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

  Юрий Ворон  | 

    | 

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

 41293

 ǀ   43 

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

Теория

Во-первых, несмотря на то, что код ваших программ находиться в файлах .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 (239 оценок, среднее: 4,90 из 5)
Загрузка...

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

  1. Dweeni:

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

  2. Эзиз:

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

  3. Олег:

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

    1. Юрий Ворон Юрий Ворон:

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

  4. Алексей:

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

    1. Kaladgan:

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

  5. Pifagorec:

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

    1. Юрий Ворон Юрий Ворон:

      В версии Visual Studio 2017:

      Заменили на:

      1. Ашот:

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

      2. Евген:

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

        1. Юрий Ворон Юрий Ворон:

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

  6. илья:

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

    1. Константин:

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

      1. Денис (MegaTech):

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

  7. Koh:

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

    1. Дмитрий:

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

    2. Pifagorec:

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

  8. Artem:

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

    1. Юрий Юрий:

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

  9. Константин:

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

  10. Евгений:

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

    1. Юрий Юрий:

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

  11. Даниил:

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

    1. Юрий Юрий:

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

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

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

        1. Юрий Ворон Юрий Ворон:

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

  12. SV:

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

    1. Юрий Юрий:

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

      1. SV:

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

        1. Юрий Юрий:

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

  13. ctcu:

    Добрый день!

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

    1. Li4ik Li4ik:

      «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.

  14. Андрей Оганесян:

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

    1. Li4ik Li4ik:

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

  15. Natiq:

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

    1. Li4ik Li4ik:

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

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

      1. Koh:

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

  16. Pavel:

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

    1. Li4ik Li4ik:

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

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

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

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

  17. Jaan:

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

    1. Li4ik Li4ik:

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

      1. Новичок:

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

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

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

        1. Li4ik Li4ik:

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

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

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