1.1.2 Компиляция

1.1.2 Компиляция

Откуда появились выходной поток cout и код, реализующий операцию вывода ««? Для получения выполняемого кода написанная на С++ программа должна быть скомпилирована. По своей сути процесс компиляции такой же, как и для С, и в нем участвует большая часть входящих в последний программ. Производится чтение и анализ текста программы, и если не обнаружены ошибки, то генерируется код. Затем программа проверяется на наличие имен и операций, которые использовались, но не были определены (в нашем случае это cout и ««). Если это возможно, то программа делается полной посредством дополнения недостающих определений из библиотеки (есть стандартные библиотеки, и пользователи могут создавать свои собственные). В нашем случае cout и «« были описаны в stream.h, то есть, были указаны их типы, но не было дано никаких подробностей относительно их реализации. В стандартной библиотеке содержится спецификация пространства и инициализирующий код для cout и ««. На самом деле, в этой библиотеке содержится и много других вещей, часть из которых описана в stream.h, однако к скомпилированной версии добавляется только подмножество библиотеки, необходимое для того, чтобы сделать нашу программу полной.

Команда компиляции в С++ обычно называется CC. Она используется так же, как команда cc для программ на C, подробности вы можете найти в вашем руководстве. Предположим, что программа с «Hello, world» хранится в файле с именем hello.c, тогда вы можете ее скомпилировать и запустить примерно так ($ – системное приглашение):

$ CC hello.c $ a.out Hello,world $

a.out – это принимаемое по умолчанию имя исполняемого результата компиляции. Если вы хотите назвать свою программу, вы можете сделать это с помощью опции -o:

$ CC hello.c -o hello $ hello Hello,world $

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

1.1.2 Компиляция

Из книги C++ автора Хилл Мюррей

1.1.2 Компиляция Откуда появились выходной поток cout и код, реализующий операцию вывода ««? Для получения выполняемого кода написанная на С++ программа должна быть скомпилирована. По своей сути процесс компиляции такой же, как и для С, и в нем участвует большая часть входящих


11.3 Условная Компиляция

Из книги Fedora 8 Руководство пользователя автора Колисниченко Денис Николаевич

11.3 Условная Компиляция Командная строка компилятора вида#if выражениепроверяет, является ли результатом вычисления выражения не-ноль. Выражение должно быть константным выражением, котрые обсуждаются в #12. Кроме обычных операций С++ может ипользоваться унарная операция


3.4.3. Компиляция

Из книги Linux для пользователя автора Костромин Виктор Алексеевич

3.4.3. Компиляция Как правило, исходные коды программ распространяются в виде архива с "двойным расширением" -.tar.gz. Исходный код принято распаковывать в каталог /usr/src. Поэтому для распаковки архива вам нужно выполнить следующие команды:sucd /usr/srcgunzip архив.tar.gztar xvf


17.5.6. Компиляция модулей

Из книги 200 лучших программ для Linux автора Яремчук Сергей Акимович

17.5.6. Компиляция модулей Если вы сконфигурировали какие-то драйверы как отдельные модули (выбирали при конфигурации вариант "m" при ответе на некоторые вопросы), то вы теперь должны еще выполнить команду make modules, а затем еще команду make modules_install. В файле Documentation/modules.txt можно


Компиляция программ

Из книги Язык программирования С# 2005 и платформа .NET 2.0. [3-е издание] автора Троелсен Эндрю

Компиляция программ Даже после появления пакетов, которые представляли собой уже скомпилированные программы, компиляция долгое время оставалась и для некоторых остается основным средством установки. Примечание Первые прекомпилированные наборы появились в


Условная компиляция

Из книги Asterisk™: будущее телефонии Второе издание автора Меггелен Джим Ван

Условная компиляция Другой пакет директив препроцессора (#if, #elif, #else, #endif) позволяет выполнить компиляцию блока программного кода по условию, базируясь на предварительно заданных символах. Классическим вариантом использования этих директив является идентификация блока


Компиляция libpri

Из книги Язык программирования Си для персонального компьютера автора Бочков C. О.

Компиляция libpri Для библиотек libpri не используется программа autoconf для настройки среды сборки или окно выбора компонентов сборки, поскольку они не нужны; таким образом, установка упрощается. libpri применяется различными производителями аппаратных средств


Компиляция Asterisk

Из книги Linux: Полное руководство автора Колисниченко Денис Николаевич

Компиляция Asterisk После компиляции и установки пакетов zaptel и libpri (если они нужны), можно переходить к установке Asterisk. В этом разделе рассматривается стандартная установка и представлены некоторые альтернативные аргументы make, которые могут


Компиляция ядра

Из книги Linux программирование в примерах автора Роббинс Арнольд

Компиляция ядра После того как вы сконфигурировали ядро системы, выполнив make xconfig или другую команду, приведенную в начале данной главы, вы должны скомпилировать ядро и установить его модули. Для этого необходимо выполнить следующие команды:# make dep# make bzImage# make modules# make


Условная компиляция

Из книги Язык Си - руководство для начинающих автора Прата Стивен

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


20.5. Компиляция ядра

Из книги Linux глазами хакера автора Флёнов Михаил Евгеньевич

20.5. Компиляция ядра 20.5.1. Зачем обновлять ядро? Linux развивается быстрее любой другой операционной системы. Регулярно появляются новые версии ядра, реализующие новые функции. Например, едва успел выйти дистрибутив Fedora Core 4 на ядре 2.6.11, а на www.kernel.org уже лежит стабильная


28.2. Компиляция модуля

Из книги автора

28.2. Компиляция модуля Компилировать мы будем файл module.c. Для этого понадобится установленный компилятор gcc, заголовочные файлы и исходные тексты ядра. Если вы дочитали книгу до этой главы, то у вас уже должны быть установлены пакеты:1. cpp — препроцессор cpp;2. binutils — набор


15.2. Компиляция для отладки

Из книги автора

15.2. Компиляция для отладки Для использования отладчика исходного кода, отлаживаемый исполняемый файл должен быть откомпилирован с опцией компилятора -g. Эта опция заставляет компилятор внедрять в объектный код дополнительные отладочные идентификаторы; то есть


Почему компиляция?

Из книги автора

Почему компиляция? Читатели, пользовавшиеся языком Бейсик, могут удивиться, зачем столько шагов для того, чтобы выполнить программу. Кажется, что такой способ компиляции требует больше времени (и в некоторых случаях это может быть действительно так). Но, поскольку в


3.8.3. Компиляция ядра

Из книги автора

3.8.3. Компиляция ядра При установке из RPM-пакета мы получаем модульное ядро, в котором драйверы устройств могут быть как скомпилированы в одно целое с ядром, так и загружаться отдельно. Такое ядро медленнее в работе, но позволяет обновлять драйверы простой заменой