Нейл Мэтью - Основы программирования в Linux

Здесь есть возможность читать онлайн «Нейл Мэтью - Основы программирования в Linux» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Город: Санкт-Петербург, Год выпуска: 2009, ISBN: 2009, Издательство: «БХВ-Петербург», Жанр: Программирование, ОС и Сети, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Основы программирования в Linux: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Основы программирования в Linux»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

В четвертом издании популярного руководства даны основы программирования в операционной системе Linux. Рассмотрены: использование библиотек C/C++ и стан­дартных средств разработки, организация системных вызовов, файловый ввод/вывод, взаимодействие процессов, программирование средствами командной оболочки, создание графических пользовательских интерфейсов с помощью инструментальных средств GTK+ или Qt, применение сокетов и др. Описана компиляция программ, их компоновка c библиотеками и работа с терминальным вводом/выводом. Даны приемы написания приложений в средах GNOME® и KDE®, хранения данных с использованием СУБД MySQL® и отладки программ. Книга хорошо структурирована, что делает обучение легким и быстрым.
Для начинающих Linux-программистов

Основы программирования в Linux — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Основы программирования в Linux», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

.с.а:

$(CC) -с $(CFLAGS)

$< $(AR) $(ARFLAGS) $@ $*.о

Макросы $(AR)и $(ARFLAGS)подразумевают команду arи опции rvсоответственно. Довольно краткая синтаксическая запись информирует команду makeо том, что для включения файла .с в библиотеку .а следует применить два следующих правила:

□ первое правило говорит о том, что команда makeдолжна откомпилировать исходный файл и сформировать объектный файл;

□ второе правило предписывает применить команду arдля модификации библиотеки, заключающейся в добавлении нового объектного файла.

Итак, если у вас есть библиотека fud, содержащая файл bas.o, в первом правиле $<заменяется именем bas.c. Во втором правиле $@заменяется именем библиотеки fud.аи $*заменяется именем bas.

Выполните упражнение 9.4.

Упражнение 9.4. Управление библиотекой

Правила управления библиотеками очень просто применять на практике. В этом упражнении вы измените свое приложение, сохранив файлы 2.o и 3.o в библиотеке mylib.a. Make-файл потребует лишь нескольких изменений и его новый вариант Makefile5 будет выглядеть следующим образом:

all: myapp

# Какой компилятор

CC = gcc

# Куда установить

INSTDIR = /usr/local/bin

# Где хранятся файлы include

INCLUDE =

# Опции для разработки

CFLAGS = -g -Wall -ansi

# Опции для рабочей версии

# CFLAGS = -O -Wall -ansi

# Локальные библиотеки

MYLIB = mylib.a

myapp: main.o $(MYLIB)

$(CC) -o myapp main.o $(MYLIB)

$(MYLIB): $(MYLIB)(2.o) $(MYLIB)(3.o)

main.o: main.c a.h

2.o: 2.c a.h b.h

3.o: 3.c b.h c.h

clean:

-rm main.o 2.o 3.o $(MYLIB)

install: myapp

@if [ -d $(INSTDIR) ]; \

then \

cp myapp $(INSTDIR);\

chmod a+x $(INSTDIR)/myapp;\

chmod og-w $(INSTDIR)/myapp;\

echo "Installed in $(INSTDIR)";\

else \

echo "Sorry, $(INSTDIR) does not exist";\

fi

Обратите внимание на то, как вы разрешили правилам по умолчанию выполнить большую часть работы. Теперь проверьте новую версию make-файла:

$ rm -f myapp *.o mylib.a

$ make -f Makefile5

gcc -g -Wall -ansi -с -o main.о main.c

gcc -g -Wall -ansi -с -o 2.о 2.c

ar rv mylib.a 2.o

a - 2.o

gcc -g -Wall -ansi -с -о 3.o 3.c

ar rv mylib.a 3.o

a - 3.о

gcc -o myapp main.о mylib.a

$ touch c.h

$ make -f Makefile5

gcc -g -Wall -ansi -с -о 3.o 3.c

ar rv mylib.a 3.o

r - 3.о

gcc -o myapp main.о mylib.a

$

Как это работает

Сначала вы удаляете все объектные файлы и библиотеку и разрешаете команде makeсоздать файл myapp, что она и делает, откомпилировав и создав библиотеку перед тем, как компоновать файл main.о с библиотекой для создания исполняемого файла myapp. Далее вы тестируете зависимость для файла 3.o, которая информирует команду makeо том, что, если меняется файл c.h, файл 3.c следует заново откомпилировать. Она делает это корректно, откомпилировав файл и обновив библиотеку перед перекомпоновкой, создающей новую версию исполняемого файла myapp.

Более сложная тема: make-файлы и подкаталоги

При работе над большими проектами порой бывает удобно отделить от основных файлов файлы, формирующие библиотеку, и поместить их в подкаталог. С помощью команды makeможно сделать это двумя способами.

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

mylib.a:

(cd mylibdirectory;$(MAKE))

Это правило гласит, что вы всегда должны пытаться создать mylib.a с помощью команды make. Когда makeинициирует правило создания библиотеки, она изменяет каталог на mylibdirectory и затем запускает новую команду makeдля управления библиотекой. Поскольку для этого запускается новая командная оболочка, программа, применяющая make-файл, не выполняет команду cd. А командная оболочка, запущенная для выполнения правила построения библиотеки, находится в другом каталоге. Скобки обеспечивают выполнение всего процесса в одной командной оболочке.

Второй способ заключается в применении нескольких макросов в одном make-файле. Дополнительные макросы генерируются добавлением символа Dдля каталога или символа Fдля имени файла к тем макросам, которые мы уже обсуждали. Вы можете переписать встроенное правило с суффиксами .с.о

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Основы программирования в Linux»

Представляем Вашему вниманию похожие книги на «Основы программирования в Linux» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Основы программирования в Linux»

Обсуждение, отзывы о книге «Основы программирования в Linux» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.