Чтение онлайн

на главную - закладки

Жанры

Освой самостоятельно С++ за 21 день.

Либерти Джесс

Шрифт:

Компиляция исходного кода программы

Хотя исходный текст программы, содержащийся в вашем файле, не будет понятен каждому, кто в него заглянет (особенно тем, кто незнаком с языком C++), все же он представлен в таком виде, который может быть воспринят человеком. Файл с исходным текстом программы — это еще не программа, и его нельзя выполнить или запустить.

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

Сохраняйте свои файлы с расширением .сpp, .cp или .c.

Обращайтесь

к документации компиля­тора и компоновщика, чтобы быть уве­ренным в правильном компилировании и компоновке программы.

Не рекомендуется: Не используйте текстовый процессор, который сохраняет форматированный текст. Если вам все-таки приходится обращаться к нему, сохраняйте файлы как текст ASCII.

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

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

Создание исполняемого файла с помощью компоновщика

Программы на языке C++ обычно создаются путем компоновки одного или нескольких объектных файлов (файлов .obj) с одной или несколькими библиотеками. Библиотекой называется коллекция компонуемых файлов, которые либо поставляются вместе с компилятором, либо приобретаются отдельно, либо создаются и компилируются самим программистом. Все компиляторы C++ поставляются с библиотекой функций (или процедур) и классов, которые можно включить в программу. Функция — это программный блок, который выполняет некоторые служебные действия, например складывает два числа или выводит информацию на экран. Класс можно рассматривать как коллекцию данных и связанных с ними функций. О функциях и классах речь впереди (см. занятия 5 и 6).

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

1. Создать файл с исходным текстом программы, который будет иметь расширение cpp.

2. Скомпилировать исходный код и получить объектный файл с расширением .obj.

3. Скомпоновать файл .obj с необходимыми библиотеками с целью создания исполняемого файла программы.

Цикл разработки

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

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

Первая программа на языке C++ — HELLO.cpp

Традиционно в книгах по программированию первые примеры программ начинаются с вывода на зкран слов Hello World или какой-нибудь вариации на тему. В этой книге мы следовали устоявшимся традициям.

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

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

Примечание: В приведенном ниже листинге слева содержатся номера строк. Эти номера установлены лишь для ссылки в тексте книги на соответствующие строки программы. Их не нужно вводить в окно редактора, Например, в первой строке листинга 1.1 вы должны ввести: #include <iostream.h>

Листинг 1.1. Файл HELLO.cpp — программа приветствия.

1: #include <iostream.h>

2:

3: int main

4: {

5: cout << "Hello World!\n"

6: return 0;

7: }

Убедитесь в том, что введенный вами текст программы совпадает с содержимым приведенного здесь листинга. Обратите внимание на знаки препинания. Символ << в строке 5 является оператором перенаправления потока данных. Эти символы на большинстве клавиатур вводятся путем нажатия клавиши <Shift> и двойного нажатия клавиши с запятой. Строка 5 завершается точкой с запятой (;). Не пропустите этот символ завершения строки программного кода!

Рис. 1.1. Этапы разработки программы на языке C++

Кроме того, убедитесь, что вы корректно работаете со своим компилятором. Большинство компиляторов переходит к компоновке автоматически, но все-таки стоит свериться с документацией. Если вы получите какие-нибудь сообщения об ошибках, просмотрите внимательно текст своей программы и найдите отличия от варианта, приведенного в книге. Если вы увидите сообщение об ошибке со ссылкой на строку 1, уведомляющее о невозможности найти файл iostream.h (cannot find file iostream.h), обратитесь к документации за указаниями об установке пути для включаемых файлов или переменных окружения. Если вы получите сообщение об ошибке, уведомляющее об отсутствии прототипа для функции main, добавьте строку int main; сразу перед строкой 3. В этом случае вам придется добавлять эту строку до начала функции main в каждой программе, приведенной в этой книге. Большинство компиляторов не требует наличия прототипа для функции main, но вполне возможно, что именно вам достался компилятор из другой компании.

Один из возможных вариантов программы будет выглядеть следующим образом:

1: #include <iostream.h>

2: int main; // большинство компиляторов не требует этой строки

3: int main

4: {

5: cout << "Hello World!\n"

6: return 0;

7: }

Попробуйте выполнить программу HELLO.exe. Если все правильно, вы должны увидеть на экране приветствие:

Hello world!

Использование стандартных библиотек

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

#include <iostream.h>

а не заголовки новых стандартных библиотек:

#include <iostream>

Такой вариант включения должен работать на всех компиляторах, тем не менее, он имеет ряд недостатков. Если вы предпочитаете использовать новые стандартные библиотеки, просто замените в своей программе строку 1 строкой

Поделиться:
Популярные книги

Темный Лекарь 7

Токсик Саша
7. Темный Лекарь
Фантастика:
попаданцы
аниме
фэнтези
5.75
рейтинг книги
Темный Лекарь 7

Пограничная река. (Тетралогия)

Каменистый Артем
Пограничная река
Фантастика:
фэнтези
боевая фантастика
9.13
рейтинг книги
Пограничная река. (Тетралогия)

70 Рублей - 2. Здравствуй S-T-I-K-S

Кожевников Павел
Вселенная S-T-I-K-S
Фантастика:
боевая фантастика
постапокалипсис
5.00
рейтинг книги
70 Рублей - 2. Здравствуй S-T-I-K-S

Темный Лекарь 4

Токсик Саша
4. Темный Лекарь
Фантастика:
фэнтези
аниме
5.00
рейтинг книги
Темный Лекарь 4

Камень. Книга шестая

Минин Станислав
6. Камень
Фантастика:
боевая фантастика
7.64
рейтинг книги
Камень. Книга шестая

Неверный

Тоцка Тала
Любовные романы:
современные любовные романы
5.50
рейтинг книги
Неверный

Корсар

Русич Антон
Вселенная EVE Online
Фантастика:
боевая фантастика
космическая фантастика
6.29
рейтинг книги
Корсар

Орден Багровой бури. Книга 6

Ермоленков Алексей
6. Орден Багровой бури
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Орден Багровой бури. Книга 6

Венецианский купец

Распопов Дмитрий Викторович
1. Венецианский купец
Фантастика:
фэнтези
героическая фантастика
альтернативная история
7.31
рейтинг книги
Венецианский купец

Прогрессор поневоле

Распопов Дмитрий Викторович
2. Фараон
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Прогрессор поневоле

Мастер Разума V

Кронос Александр
5. Мастер Разума
Фантастика:
городское фэнтези
попаданцы
5.00
рейтинг книги
Мастер Разума V

Клан

Русич Антон
2. Долгий путь домой
Фантастика:
боевая фантастика
космическая фантастика
5.60
рейтинг книги
Клан

Плохая невеста

Шторм Елена
Любовные романы:
любовно-фантастические романы
7.71
рейтинг книги
Плохая невеста

Предопределение

Осадчук Алексей Витальевич
9. Последняя жизнь
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Предопределение