Читаем Linux: Полное руководство полностью

Основным C-компилятором в Linux служит gcc (GNU С Compiler). Если вы не установили средства разработки при установке дистрибутива, самое время сделать это сейчас. Запустите менеджер пакетов (рис. 21.1) и установите следующие пакеты:

♦ gcc — сам компилятор gcc;

♦ gcc-c++ — поддержка С++;

♦ gcc-doc — документация по gcc (очень рекомендую установить);

♦ compat-gcc — пакет, содержащий средства gcc для обратной совместимости. Данный пакет вам нужен, если вы планируете писать программы для более старых систем, чем ваша;

♦ compat-gcc-c++ — то же, что и compat-gcc, только с поддержкой С++;

♦ compat-cpp — препроцессор cpp для обратной совместимости;

♦ binutils — набор вспомогательных утилит, о которых мы поговорим в последнем пункте этой главы;

♦ glibc-devel — содержит библиотеки для разработки C-программ;

♦ libbfd — библиотека дескриптора двоичного файла (Binary File Descriptor library);

♦ libstdc++-devel — заголовочные файлы и библиотеки для программирования на С++;

♦ make — утилита, упрощающая процесс сборки больших проектов.

Рис. 21.1. Менеджер пакетов Fedora Core — system-config-packages

<p>21.1.1. Вызов gcc</p>

Формат вызова компилятора такой:

gcc [опции] helloworld.с

Вы написали свою программу на С++? Нет проблем: компиляторы С и С++ являются интегрированными. Чтобы сообщить компилятору, на каком языке вы писали свою программу, нужно указать определенную опцию при вызове компилятора. Но можно поступить проще: по умолчанию компилятор считает, что файлы с расширением .с написаны на языке С, файлы с одним из расширений .C, .cc, .cXX — на языке С++, а файлы с расширением .s — на языке ассемблера.

Как правило, перед компиляцией вызывается программа cpp — препроцессор языка С. Препроцессор создаст файл с расширением .i, если ваша программа написана на языке С. и файл с расширением .ii, если ваша программа написана на С++. Если ваша программа уже прошла препроцессорную подготовку, вы можете передать компилятору gcc файл с расширением .i или .ii и gcc уже не будет вызывать препроцессор для подготовки исходного текста. Как правило, программу cpp редко кто вызывает вручную.

Если не указывать никаких опций, то компилятор создаст в текущем каталоге файл a.out, содержащий исполняемый код. Для тех, кто изучал другой язык, я на всякий случай приведу текст первой программы на С (листинг 21.1).

Листинг 21.1. Файл helloworld.c

#include

main() {

 printf("Hello World!\n");

}

А сейчас рассмотрим основные опции компилятора. Обо всех остальных опциях вы сможете узнать по команде man gcc.

<p>21.1.2. Общие опции</p>

Из общих опций наиболее интересны три: -х, -с и -о.

С помощью опции -х можно указать язык, на котором написан исходный код, например,

gcc -х с helloworld.c

В качестве языка программы вы можете указать:

♦ с, если ваша программа написана на С;

♦ objective_c, если ваша программа написана на Objective С;

♦ c-header, если ваша программа является заголовком С;

♦ C++, если вы написали программу на С++;

♦ assembler, если вы написали программу на ассемблере.

Существуют и другие варианты, но они не столь важны.

Опция -c используется, если вы хотите только откомпилировать вашу программу, но не вызвать компоновщик. В результате будет создан объектный файл с расширением .

Опция позволяет указать имя результирующего файла. Это очень полезная опция, потому что имя a.out мало кого устраивает:

gcc -о helloworld helloworld.c

Очень полезна опция -v, которая выводит различную информацию о стадиях компиляции. Кроме того, эта опция выводит версию компилятора.

<p>21.1.3. Опции языка</p>

Из всех опций языка мне пригодилась лишь опция ANSI, которая выключает все функции GNU С, несовместимые со стандартом ANSI. К таким функциям относятся asm, inline, typeof и другие.

<p>21.1.4. Опции препроцессора</p>

Эти опции задают режим предварительной обработки исходного кода (до собственно компиляции).

Очень важной является опция -include <файл>. Она позволяет «прогнать» через препроцессор сперва содержимое указанного файла, а только после этого файл, который передан препроцессору. В результате указанный файл будет откомпилирован раньше, чем все остальные.

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

Опция -nostdinc++ запрещает использование стандартных файлов заголовков для языка С++.

<p>21.1.5. Опции компоновщика</p>

Опция компоновщика -l позволяет явно указать имя библиотеки, которая будет использоваться при сборке вашей программы. Например,

gcc -lmylibrary myfile.c

Перейти на страницу:

Все книги серии Полное руководство

Похожие книги

Веб-аналитика: анализ информации о посетителях веб-сайтов
Веб-аналитика: анализ информации о посетителях веб-сайтов

Компании в веб-пространстве тратят колоссальные средства на веб-аналитику и оптимизацию своих веб-сайтов, которые, в свою очередь, приносят миллиарды долларов дохода. Если вы аналитик или работаете с веб-данными, то эта книга ознакомит вас с новейшими точками зрения на веб-аналитику и то, как с ее помощью сделать вашу компанию весьма успешной в веб. Вы изучите инструментальные средства и показатели, которые можно использовать, но что важнее всего, эта книга ознакомит вас с новыми многочисленными точками зрения на веб-аналитику. Книга содержит много советов, приемов, идей и рекомендаций, которые вы можете взять на вооружение. Изучение веб-аналитики по этой уникальной книге позволит познакомиться с проблемами и возможностями ее современной концепции. Написанная практиком, книга охватывает определения и теории, проливающие свет на сложившееся мнение об этой области, а также предоставляет поэтапное руководство по реализации успешной стратегии веб-аналитики.Эксперт в данной области Авинаш Кошик в присущем ему блестящем стиле разоблачает укоренившиеся мифы и ведет по пути к получению действенного понимания аналитики. Узнайте, как отойти от анализа посещаемости сайта, почему основное внимание следует уделять качественным данным, каковы методы обретения лучшего понимания, которое поможет выработать мировоззрение, ориентированное на мнение клиента, без необходимости жертвовать интересами компании.- Изучите все преимущества и недостатки методов сбора данных.- Выясните, как перестать подсчитывать количество просмотренных страниц, получить лучшее представление о своих клиентах.- Научитесь определять ценность показателей при помощи тройной проверки "Ну и что".- Оптимизируйте организационную структуру и выберите правильный инструмент аналитики.- Изучите и примените передовые аналитические концепции, включая анализ SEM/PPC, сегментацию, показатели переходов и др.- Используйте решения с быстрым началом для блогов и электронной торговли, а также веб-сайтов мелкого бизнеса.- Изучите ключевые компоненты платформы экспериментирования и проверки.- Используйте анализ конкурентной разведки для обретения понимания и принятия мер.Здесь также находятся:- Десять шагов по улучшению веб-аналитики.- Семь шагов по созданию управляемой данными культуры в организации.- Шесть способов замера успеха блога.- Три секрета создания эффективной веб-аналитики.- Десять признаков великого веб-аналитика.

Авинаш Кошик

ОС и Сети, интернет