На новой работе мне поставили задачу запустить продукт на NAS от производителей Synology и QNAP. Продукт написан на C++ с использованием C++11, Boost и Qt5. В отсутствие свободного веб-разработчика интерфейс был написан на вес , который, в свою очередь, использует для сборки CMake. Ниже будет сборка этого зоопарка и создание простого пакета.
Основным источником информации является официальное руководство.
Руководство разработчика DSM , описание в общих чертах работы с тулчейном (установка, компиляция проектов с открытым исходным кодом, упаковка).
Потому что я купил бюджетный вариант ДС 114 , у которого под капотом Marvell Armada 370 и версия прошивки DSM 5.2, то все будет собрано под арм.
Для подготовки среды я буду использовать пакет инструментов , который можно скачать со страницы проекта Проект Synology с открытым исходным кодом.
Это немного удобнее, поскольку устройства разных ценовых категорий поставляются с разными процессорами, что требует загрузки нескольких наборов инструментов.
Более подробную информацию можно найти на странице Какой процессор у моего NAS? .
распакуйте пакет инструментов
выкачиваем окружение и инструменты$ mkdir -p ~/synology/toolkit $ tar xvf pkgscripts.tgz -C ~/synology/toolkit
$ cd ~/synology/toolkit/pkgscripts/
$ sudo .
/EnvDeploy -v 5.2 -p armada370
Способствовать росту
Boost на удивление довольно легко собрать.
В огне ~/user-config.jam мы регистрируемся using gcc : arm : arm-marvell-linux-gnueabi-g++ ;
и соберите: $ .
/bootstrap.sh --prefix=/home/dmitry/synology/toolkit/build_env/ds.armada370-5.2/usr/local/arm-marvell-linux-gnueabi/arm-marvell-linux-gnueabi/libc $ export PATH=~/synology/toolkit/build_env/ds.armada370-5.2/usr/local/arm-marvell-linux-gnueabi/bin:$PATH $ .
/b2 toolset=gcc-arm link=static threading=multi install
Веб-инструментарий
Для настройки CMake я использую файл цепочки инструментов инструментальная цепочка-arm-marvell.cmake SET(CMAKE_SYSTEM_NAME Linux)
SET(CMAKE_SYSTEM_VERSION 1)
SET(CMAKE_C_COMPILER /home/dmitry/synology/toolkit/build_env/ds.armada370-5.2/usr/local/arm-marvell-linux-gnueabi/bin/arm-marvell-linux-gnueabi-gcc)
SET(CMAKE_CXX_COMPILER /home/dmitry/synology/toolkit/build_env/ds.armada370-5.2/usr/local/arm-marvell-linux-gnueabi/bin/arm-marvell-linux-gnueabi-g++)
SET(CMAKE_LINKER /home/dmitry/synology/toolkit/build_env/ds.armada370-5.2/usr/local/arm-marvell-linux-gnueabi/bin/arm-marvell-linux-gnueabi-ld.gold)
SET(CMAKE_FIND_ROOT_PATH /home/dmitry/synology/toolkit/build_env/ds.armada370-5.2/usr/local/arm-marvell-linux-gnueabi/arm-marvell-linux-gnueabi/libc)
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
Дальше:
$ tar xvf wt-3.3.4.tar.gz
$ cd wt-3.3.4
$ mkdir build
$ cd build
$ cmake -DCMAKE_TOOLCHAIN_FILE=~/toolchain-arm-marvell.cmake \
Теги: #synology #linux #C++ #C++
-
Защита От Ddos – Избегайте Угроз
19 Oct, 24 -
Золотые Товары
19 Oct, 24 -
Прямая Трансляция Запуска Visual Studio 2017
19 Oct, 24 -
Видеообзор Планшета Iconbit Nettab Matrix
19 Oct, 24 -
Firefox Не Поддерживает Кэширование
19 Oct, 24 -
Городские Стены. Может Флешмоб?
19 Oct, 24