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

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

Жанры

Linux: Полное руководство

Аллен Питер В.

Шрифт:

# make modules_install

# make install

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

/boot/vmlinuz-2.6.x-new

/boot/System.map-2.6.x-new

/boot/initrd-2.6.x-new.img

/lib/modules/2.6.x-new

Осталось добавить в конфигурационный файл вашего загрузчика (п.9.1.1) вариант загрузки с новым ядром. Если вы используете GRUB, впишите в

/boot/grub/grub.conf
следующие строки:

title Linux New Kernel

kernel /vmlinuz-2.6.x-new root=/dev/hda5 ro

initrd /initrd-2.6.x-new.img

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

В случае, если ваш загрузчик — LILO, впишите в

/etc/lilo.conf
строки:

image=/boot/vmlinuz-2.6.x-new

label=" Linux New Kernel"

root=/dev/hda5

initrd=/boot/initrd-2.6.x-new.img

read-only

И занесите изменения в загрузочную запись:

# lilo

Теперь перезагрузите систему и попробуйте загрузиться с новым ядром. При появлении каких-либо ошибок вы всегда сможете загрузить старую версию.

Глава 21

Создаем консольное приложение

21.1. Компилятор gcc

В 8 главе вы познакомились с языком командного интерпретатора и убедились, что на нем можно писать полезные сценарии. Но если вы раньше программировали под Windows, то интерпретатора вам маловато будет — понадобятся более мощные средства разработки. Разумеется, они в ОС 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

21.1.1. Вызов gcc

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

gcc [опции] helloworld.с

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

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

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

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

#include <stdio.h>

main {

 printf("Hello World!\n");

}

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

man gcc
.

21.1.2. Общие опции

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

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

gcc -х с helloworld.c

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

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

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

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

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

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

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

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

.

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

a.out
мало кого устраивает:

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

Полигон

Гостева Ирина
S.T.A.L.K.E.R.
Фантастика:
боевая фантастика
7.78
рейтинг книги
Полигон

Черная метка

Лисина Александра
7. Гибрид
Фантастика:
технофэнтези
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Черная метка

#Бояръ-Аниме. Газлайтер. Том 11

Володин Григорий Григорьевич
11. История Телепата
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
#Бояръ-Аниме. Газлайтер. Том 11

На границе империй. Том 7. Часть 3

INDIGO
9. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.40
рейтинг книги
На границе империй. Том 7. Часть 3

Эпоха Опустошителя. Том II

Павлов Вел
2. Вечное Ристалище
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Эпоха Опустошителя. Том II

Наследник

Назимов Константин Геннадьевич
3. Травник
Фантастика:
фэнтези
6.80
рейтинг книги
Наследник

Кодекс Охотника

Винокуров Юрий
1. Кодекс Охотника
Фантастика:
фэнтези
юмористическое фэнтези
попаданцы
боевая фантастика
5.00
рейтинг книги
Кодекс Охотника

География растений

Гумбольдт Александр
Классики естествознания
Научно-образовательная:
ботаника
7.50
рейтинг книги
География растений

Инкарнатор

Прокофьев Роман Юрьевич
1. Стеллар
Фантастика:
боевая фантастика
рпг
7.30
рейтинг книги
Инкарнатор

Наследие Маозари 2

Панежин Евгений
2. Наследие Маозари
Фантастика:
попаданцы
рпг
аниме
5.00
рейтинг книги
Наследие Маозари 2

Меткий стрелок

Вязовский Алексей
1. Меткий стрелок
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Меткий стрелок

Гримуар темного лорда VI

Грехов Тимофей
6. Гримуар темного лорда
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Гримуар темного лорда VI

Третий. Том 3

INDIGO
Вселенная EVE Online
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
5.00
рейтинг книги
Третий. Том 3

Убивать чтобы жить 2

Бор Жорж
2. УЧЖ
Фантастика:
героическая фантастика
боевая фантастика
рпг
5.00
рейтинг книги
Убивать чтобы жить 2