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

   ⁄ 

 Обновлено 27 Дек 2017  ⁄ 

 ⁄   18 

⁄   14575

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

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

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

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

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

Краткое примечание



Начиная с этого урока, мы будем использовать множество примеров кода C++. Большинство этих примеров будут выглядеть следующим образом:

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

Также все скрины в этом уроке сделаны в Visual Studio Express 2015. Не переживайте, если вы используете другую версию Visual Studio (более новую или старую), у вас всё будет работать. Может только интерфейс немного отличаться.

Если вы используете Visual Studio

Для создания нового проекта в Visual Studio, перейдите в меню File и выберите New Project. Дальше появится диалоговое окно:

скрін1

Во-первых, убедитесь, что на левой стороне выбран Visual C++.

Во-вторых, под Visual C++, выберите тип проекта Win32, после этого Win32 Console Application будет выделен автоматически. В поле Name введите название вашей программы — HelloWorld. В поле Location выберите место, где бы вы хотели сохранить ваш проект (мы рекомендуем оставить всё, как есть). Далее OK, затем Finish.

На правой стороне, в окне Solution Explorer Visual Studio создал несколько файлов, включая stdafx.h, helloworld.cpp и stdafx.cpp.

скріннн2

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

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

скрін3

Для компиляции программы нажмите клавишу F7 или перейдите в меню Build и выберите Build Solution. Если всё будет хорошо, вы должны увидеть следующее в окне Output:

скрін5

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

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



скрін6

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

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

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

В противном случае вы получите предупреждение от компилятора, например:

c:testtest.cpp(21) : fatal error C1010: unexpected end of file while looking for precompiled header directive

Если вы используете Code::Blocks

Для того, чтобы создать новый проект, перейдите в меню File и выберите New Project. Появится следующее диалоговое окно:

screen1

Выберите Console Application и нажмите кнопку Create.

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

screen2

Вы увидите Console Application под стандартным рабочим пространством:

screen3

Нажмите на плюс возле Console Application, откройте Sources, и дважды щелкните на main.cpp. Вы увидите, что программа «Hello, World!» уже написана!

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

screen4

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

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

screen5

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

Если вы используете командную строку в качестве компилятора

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

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

g++ -o HelloWorld HelloWorld.cpp

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

HelloWorld

или

./HelloWorld

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

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

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

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

Если вы используете другие IDE

Вот, что вам нужно сделать:

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

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

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

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

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

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

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

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

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

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

Если вы используете старую версию компилятора C++, то он может выдать ошибку, что не понимает, как подключить iostream. В таком случае, попробуйте заменить ваш код на следующий:

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

Напоследок

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

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

Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (100 оценок, среднее: 4,87 из 5)
Загрузка...
Подписаться на обновления:

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

  1. Даниил:

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

    1. Юрий:

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

  2. SV:

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

    1. Юрий:

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

      1. SV:

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

        1. Юрий:

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

  3. ctcu:

    Добрый день!

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

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

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

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

    1. Li4ik:

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

  5. Natiq:

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

    1. Li4ik:

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

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

  6. Pavel:

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

    1. Li4ik:

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

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

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

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

  7. Jaan:

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

    1. Li4ik:

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

      1. Новичок:

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

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

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

        1. Li4ik:

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

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

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

ПОДПИСЫВАЙТЕСЬ

НА КАНАЛ RAVESLI В TELEGRAM

@ravesli

ПОДПИСАТЬСЯ БЕСПЛАТНО