Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ДИПЛОМ_ИПОВС / ВКР ИПОВС / ПИН-42_2019_Золотарев_ИА_ПЗ.docx
Скачиваний:
98
Добавлен:
29.10.2021
Размер:
2.62 Mб
Скачать

3.1.6. Сборка проекта в Microsoft Visual Studio Code

Так как в качестве IDE была выбрана Microsoft Visual Studio Code, далее будет описан процесс сборки проекта в этой IDE.

Для начала, нужно настроить параметры сборки в VS Code, для этого используются два конфигурационный файла: c_cpp_properties.json и tasks.json. В первом файле настраивается компилятор и указывается список подключаемых библиотек, а во втором – непосредственно задача сборки.

Листинг 3.1. Конфигурационный файл c_cpp_properties.json

{

"configurations": [

{

"name": "Linux",

"includePath": [

"${workspaceFolder}/**",

"${workspaceFolder}",

"/usr/angtel-sdk/sysroots/aarch64-oe-linux-musl/usr/include/",

"/usr/angtel-sdk/sysroots/aarch64-oe-linux-musl/usr/include/libnl3",

"/usr/angtel-sdk/sysroots/cortexa7hf-neon-oe-linux-musleabi/usr/include/",

"/usr/include",

"/usr/angtel-sdk/sysroots/aarch64-oe-linux-musl/usr/include"

],

"browse": {

"path": [

"${workspaceFolder}"

],

"limitSymbolsToIncludedHeaders": true,

"databaseFilename": ""

},

"defines": [],

"compilerPath": "/usr/bin/gcc",

"cStandard": "c11",

"cppStandard": "c++17",

"intelliSenseMode": "clang-x64"

}

],

"version": 4

}

В листинге 3.1 поле includePath отвечает за путь к заголовочным файлам, поле brouse – за путь к файлам исходного кода, в поле compilerPath указывается полный путь к компилятору, а в поле cStandard – версия стандарта языка С.

После того, как настройки компилятора завершены, создаются задачи для сборки. Основная задача сборки ПМ АУС приведена в листинге 3.2.

Листинг 3.2. Конфигурационный файл tasks.json

{

"version": "2.0.0",

"tasks": [

{

"label": "Make linux-switch",

"type": "shell",

"command": "make clean; make install-strip DESTDIR=\"~/projects/linux-switch_installation_folder\"; curl -T ../linux-switch_installation_folder/usr/local/bin/linux-switch -u root: ftp://192.168.0.8",

"group": {

"kind": "build",

"isDefault": true

}

}

]

}

Так как сборка ПМ АУС производится с помощью утилиты make, в поле command указан набор команд для сборки. Команда «make clean» очищает директорию от файлов предыдущей сборки для того, чтобы не было возможных коллизий из-за поменявшихся файлов Makefile. Команда «make install-strip DESTDIR=\"/home/student/projects/linux-switch_installation_folder\"» собирает проект и помещает его в указанную директорию. Команда «curl -T ../linux-switch_installation_folder/usr/local/bin/linux-switch -u root: ftp://192.168.0.8» производит загрузку исполняемого файла на плату, где будет производиться его дальнейший запуск. Благодаря задачам сборки в Visual Studio Code можно не беспокоиться о переносе исполняемого файла на плату вручную, а можно это автоматизировать.

Используемый для передачи в утилиту automake файл Makefile.am представлен в листинге 3.3. Так как ПМ АУС используется как часть более крупной программы linux-switch, у него отсутствует собственный Makefile и здесь представлен именно Makefile для linux-switch.

Листинг 3.3. Файл Makefile.am для сборки linux-switch

bin_PROGRAMS = \

linux-switch

common_libs = \

$(CONFDB_LIBS) $(JANSSON_LIBS) $(LIBLOG_LIBS) $(LIBEVENT_LIBS) \

$(LIBNL_LIBS) -lubox \

$(NULL)

common_cflags = \

$(AM_CFLAGS) $(CONFDB_CFLAGS) $(JANSSON_CFLAGS) $(LIBLOG_CFLAGS) \

$(LIBEVENT_CFLAGS) $(LIBNL_CFLAGS) \

$(NULL)

linux_switch_SOURCES = \

linux-switch.c \

log.c \

bitops.c \

priv_utils.c \

session-monitor.c \

stp-ctl.c \

bridge.c \

eth_control.c \

eth.c \

eth_sfp.c \

interfaces.c \

ipv4.c \

if-l3-vlan.c \

$(NULL)

В листинге 3.3 указаны переменные для настройки сборки: bin_PROGRAMS – список выходных исполняемых файлов, common_libs – список библиотек, common_cflags – список флагов для gcc, linux_switch_SOURCES – список файлов исходного кода. Параметры для переменных common_libs и common_cflags берутся из переменных окружения, настроенного с помощью autoconf.

После заполнения вышеуказанных конфигурационных файлов, сборку программы можно запустить с помощью комбинации клавиш Ctl+Shift+B, а запуск программы после сборки можно осуществить с помощью комбинации Ctl+F9.