
- •3.2 Коммутатор Zyxel es-105s
- •4. Описание программных средств
- •4.1 Описание Linux Ångström
- •4.2 Описание Linux Ubuntu
- •4.2.1 Общие характеристики
- •4.2.2 Среда рабочего стола — gnome
- •4.2.4 Файловый менеджер Nautilus
- •4.2.6 Оболочка Bash
- •4.3 Разработка приложения для платформ х86 и arm
- •4.4 Построение сети
- •4.4. 1 Протокол dhcp
- •4.5 Передача файла по локальной сети
- •4.5.1 Клиент putty
- •4.5.2 Утилита scp
- •4.5.3 Протокол sftp
- •4.5.4 Протокол ssh
- •4.6 Организация прав доступа
- •Использование команды в числовом виде
- •Список литературы
4.3 Разработка приложения для платформ х86 и arm
Установить компилятор в системе не представляется возможным, а значит необходимо собрать на платформе х86 приложение и под платформу х86, и под платформу ARM. Имеется make-файл, в котором указаны зависимости файлов друг от друга и правила для их удовлетворения, и исходный код приложения.
Содержимое make-файла:
LIBS=gtk+-2.0 #переменная для библиотеки элементов интерфейса
CFLAGS=`pkg-config --cflags $(LIBS)` #переменная для флагов, которые передаются компилятору; pkg-config – утилита, предоставляющая интерфейс для получения информации об установленных программных библиотеках, включающую в себя параметры для C или C++ компилятора, параметры для компоновщика, а также версию пакета
CLIBS=`pkg-config --libs $(LIBS)` #переменная для C библиотек
COPTS=-std=gnu99 #стандартный макрос, содержащий флаги для С-компилятора
PROJECT=gplot #переменная для названия проекта
#переменные для пути:1-Angstrom, 2-инклуды для сборки для arm-платформы, 3- arm библиотек
ANGPATH=/usr/local/angstrom/arm
ARMINCLUDES=$(ANGPATH)/arm-angstrom-linux-gnueabi/usr/include
ARMLIBS=$(ANGPATH)/arm-angstrom-linux-gnueabi/usr/lib
all: x86
both: x86 arm
x86:
gcc $(COPTS) $(PROJECT).c -o $(PROJECT).x86 $(CFLAGS) $(CLIBS)
arm:
$(ANGPATH)/bin/arm-angstrom-linux-gnueabi-gcc $(COPTS) $(PROJECT).c -o $(PROJECT).arm $(CFLAGS) $(CLIBS)
clean:
rm -rf "$(PROJECT)" "$(PROJECT).x86" "$(PROJECT).arm" *~
make — утилита, автоматизирующая процесс преобразования файлов из одной формы в другую. Чаще всего это компиляция исходного кода в объектные файлы и последующая компоновка в исполняемые файлы или библиотеки.
Утилита использует специальные make-файлы, в которых указаны зависимости файлов друг от друга и правила для их удовлетворения. На основе информации о времени последнего изменения каждого файла make определяет и запускает необходимые программы.
make [ -f make-файл ] [ цель ] ...
Файл ищется в текущем каталоге. Если ключ -f не указан, используется имя по умолчанию для make-файла — Makefile (однако, в разных реализациях make кроме этого могут проверяться и другие файлы, например GNUmakefile).
make открывает make-файл, считывает правила и выполняет команды, необходимые для создания указанной цели.
Стандартные цели для сборки дистрибутивов GNU:
all — выполнить сборку пакета;
install — установить пакет из дистрибутива (производит копирование исполняемых файлов, библиотек и документации в системные каталоги);
uninstall — удалить пакет (производит удаление исполняемых файлов и библиотек из системных каталогов);
clean — очистить дистрибутив (удалить из дистрибутива объектные и исполняемые файлы, созданные в процессе компиляции);
distclean — очистить все созданные при компиляции файлы и все вспомогательные файлы, созданные утилитой ./configure в процессе настройки параметров компиляции дистрибутива.
По умолчанию make использует самую первую цель в make-файле.
В процессе сборки приложений BSD часто применяют:
depend — выполнить компиляцию/выстраивание зависимостей.
Программа make выполняет команды согласно правилам, указанным в специальном файле. Этот файл называется make-файл (makefile, мейкфайл). Как правило, make-файл описывает, каким образом нужно компилировать и компоновать программу.
make-файл состоит из правил и переменных. Правила имеют следующий синтаксис:
цель1 цель2 ...: реквизит1 реквизит2 ...
команда1
команда2
...
Правило представляет собой набор команд, выполнение которых приведёт к сборке файлов-целей из файлов-реквизита.
Правило сообщает make, что файлы, получаемые в результате работы команд (цели) являются зависимыми от соответствующих файлов-реквизита. make никак не проверяет и не использует содержимое файлов-реквизита, однако, указание списка файлов-реквизита требуется только для того, чтобы make убедилась в наличии этих файлов перед началом выполнения команд и для отслеживания зависимостей между файлами.
Обычно цель представляет собой имя файла, который генерируется в результате работы указанных команд. Целью также может служить название некоторого действия, которое будет выполнено в результате выполнения команд (например, цель clean в make-файлах для компиляции программ обычно удаляет все файлы, созданные в процессе компиляции).
Строки, в которых записаны команды, должны начинаться с символа табуляции.
Отсюда можно сделать вывод, что для сборки исходного приложения под платформу х86 используется компилятор gcc (стандартный компилятор для ОС linux). Исходный код компилируется в объектный файл с последующей компоновкой в исполняемый файл для запуска на одноплатном компьютере.