Основы программирования в Linux
Основы программирования в Linux читать книгу онлайн
Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала
a - 2.ogcc -g -Wall -ansi -с -о 3.o 3.car rv mylib.a 3.oa - 3.оgcc -o myapp main.о mylib.a$ <b>touch c.h</b>$ <b>make -f Makefile5</b>gcc -g -Wall -ansi -с -о 3.o 3.car rv mylib.a 3.o r - 3.оgcc -o myapp main.о mylib.a$Как это работает
Сначала вы удаляете все объектные файлы и библиотеку и разрешаете команде
makemakeБолее сложная тема: make-файлы и подкаталоги
При работе над большими проектами порой бывает удобно отделить от основных файлов файлы, формирующие библиотеку, и поместить их в подкаталог. С помощью команды
makeВо-первых, можно создать в подкаталоге второй make-файл для компиляции файлов, сохранения их в библиотеке и последующего копирования библиотеки на уровень вверх, в основной каталог. При этом в основном make-файле, хранящемся в каталоге более высокого уровня, есть правило формирования библиотеки, в котором описан запуск второго make-файла следующим образом:
mylib.a: (cd mylibdirectory;$(MAKE))Это правило гласит, что вы всегда должны пытаться создать mylib.a с помощью команды
makemakemakecdВторой способ заключается в применении нескольких макросов в одном make-файле. Дополнительные макросы генерируются добавлением символа
DF.c.o: $(СС) $(CFLAGS) -с $(@D)/$(<F) -о $(@D)/$(@F)для компиляции файлов в подкаталоге и сохранения в нем объектных файлов. Затем вы обновляете библиотеку в текущем каталоге с помощью зависимости и правила, наподобие приведенных далее:
mylib.a: mydir/2.o mydir/3.о ar -rv mylib.a $?Вы должны решить, какой из способов предпочтительнее в вашем проекте. Многие проекты просто избегают применения подкаталогов, но это может привести к непомерному разрастанию исходного каталога. Как видно из только что приведенного краткого обзора, команду
makeВерсия GNU команд make и gcc
Для GNU-команды
makegcc□ Первая — опция
-j<i>N</i>makemake<i>N</i>make-j3□ Второе полезное дополнение — опция
-MMgccmakeВыполните упражнение 9.5.
gcc -MMВ этом упражнении вы примените опцию
-MMgcc$ <b>gcc -MM main.с 2.с 3.с</b>main.о: main.c a.h2.о: 2.с a.h b.h3.o: 3.с b.h c.h$Как это работает
Компилятор
gccgccЕсли вы хорошо знакомы с make-файлами, можно попробовать применить средство
makedepend-MMПеред завершением темы make-файлов, быть может, стоит подчеркнуть, что не следует ограничивать применение make-файлов только компиляцией кода и созданием библиотек. Их можно использовать для автоматизации любой задачи, в которой есть последовательность команд, формирующих из входного файла некоторого типа выходной файл. Типичным "некомпиляционным" применением может быть вызов программ
awksed
