-->

Основы программирования в Linux

На нашем литературном портале можно бесплатно читать книгу Основы программирования в Linux, Мэтью Нейл-- . Жанр: Программирование / ОС и Сети. Онлайн библиотека дает возможность прочитать весь текст и даже без регистрации и СМС подтверждения на нашем литературном портале bazaknig.info.
Основы программирования в Linux
Название: Основы программирования в Linux
Дата добавления: 16 январь 2020
Количество просмотров: 672
Читать онлайн

Основы программирования в Linux читать книгу онлайн

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

Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала

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

Если вы — обычный пользователь, то у вас может не быть прав на установку новых команд в каталог /usr/local/bin. Можно изменить в make-файле каталог установки, изменить права доступа к этому каталогу или заменить пользователя (с помощью команды

su
) на root перед запуском
make install
.

$ <b>rm *.о myapp</b>

$ <b>make -f Makefile3</b>

gcc -I. -g -Wall -ansi -c main.c

gcc -I. -g -Wall -ansi -c 2.c

gcc -I. -g -Wall -ansi -с 3.c

gcc -o myapp main.о 2.o 3.o

$ <b>make -f Makefile3</b>

make: Nothing to be done for 'all'.

$ <b>rm myapp</b>

$ <b>make -f Makefile3 install</b>

gcc -o myapp main.o 2.o 3.o

Installed in /usr/local/bin

$ <b>make -f Makefile3 clean</b>

rm main.о 2.о 3.о

$

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

Сначала вы удаляете файл myapp и все объектные файлы. Команда

make
самостоятельно выбирает задание
all
, которое приводит к сборке myapp. Затем вы снова запускаете команду
make
, но т.к. у файла myapp свежая версия,
make
не делает ничего. Далее вы удаляете файл myapp и выполняете
make install
. Эта команда создает заново двоичный файл и копирует его в каталог установки. В заключение выполняется команда
make clean
, удаляющая объектные файлы.

Встроенные правила

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

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

#include &lt;stdlib.h&gt;

#include &lt;stdio.h&gt;

int main() {

 printf(&quot;Hello Worldn&quot;);

 exit(EXIT_SUCCESS);

}

He задавая make-файла, попробуйте откомпилировать ее с помощью команды

make
:

$ <b>make foo</b>

сс foo.с -о foo

$

Как видите,

make
знает, как запустить компилятор, хотя в данном случае она выбирает
сс
вместо
gcc
(в ОС Linux это нормально, потому что
cc
— обычно ссылка на
gcc
). Иногда эти встроенные правила называют подразумеваемыми правилами. Стандартные правила используют макросы, поэтому задавая некоторые новые значения для макросов, вы можете изменить стандартное поведение.

$ <b>rm foo</b>

$ <b>make CC=gcc CFLAGS=&quot;-Wall -g&quot; foo</b>

gcc -Wall -g foo.с -o foo

$

С помощью опции

-p
можно попросить команду
make
вывести на экран встроенные правила. Их так много, что мы не можем привести в книге все встроенные правила, ограничимся коротким фрагментом вывода команды
make -p
версии GNU, демонстрирующим часть этих правил:

OUTPUT_OPTION = -o [email protected]

COMPILE.с = $(CC) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -с

%.о: %.с

# commands to execute (built-in) :

 $(COMPILE.с) $(OUTPUT_OPTION) $&lt;

Теперь, принимая во внимание описанные встроенные правила, вы можете упростить ваш make-файл, удалив правила для создания объектных файлов и оставив только зависимости, таким образом, соответствующая секция make-файла читается просто:

main.о: main.c a.h

2.о: 2.с a.h b.h

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

Эту версию можно найти в загружаемом из Интернета программном коде, в файле Makefile4.

Суффиксы и шаблоны правил

Встроенные правила, которые вы видели, действуют, используя суффиксы (подобные расширениям файлов в системах Windows и MS-DOS), поэтому команда

make
, получая файл с одним окончанием, знает, какое правило применять для создания файла с другим окончанием. Чаще всего используется правило для создания файла, заканчивающегося .о, из файла с окончанием .c. Это правило для применения компилятора, компилирующего исходный файл, но не компонующего.

Порой возникает потребность в создании новых правил. Авторы приучили себя работать с исходными файлами, которые необходимо компилировать несколькими разными компиляторами: двумя в среде MS-DOS и

gcc
в ОС Linux. Для того чтобы осчастливить один из компиляторов MS-DOS, исходные файлы на языке С++, а не С должны иметь расширение cpp. К сожалению, у версии команды
make
, применяемой в Linux, в то время не было встроенного правила для компиляции файлов с окончанием .cpp. (Существовало правило для суффикса .cc, более распространенного расширения файла на C++ в среде UNIX.)

Следовательно, нужно было либо задавать правило для каждого отдельного исходного файла, либо научить

make
новому правилу для создания объектных файлов из файлов с расширением cpp. Учитывая, что в том проекте было довольно большое количество исходных файлов, определение нового правила сэкономило бы много времени на наборе и существенно облегчило бы добавление новых исходных файлов в проект.

Для вставки правила с новым суффиксом сначала добавьте строку в make-файл, информирующую команду

make
о новом суффиксе; далее можно написать правило, используя новый суффикс. Команда
make
применяет специальную синтаксическую запись

.&lt;old_suffix&gt;.&lt;new_suffix&gt;:

для определения общего правила создания файлов с новым суффиксом из файлов с тем же основным именем, но старым суффиксом.

Далее приведен фрагмент make-файла с новым общим правилом для компиляции файлов с суффиксом .срр в файлы с суффиксом .о:

.SUFFIXES: .cpp

Перейти на страницу:
Комментариев (0)
название