вторник, 19 июня 2012 г.

Военный Linux МСВС 3.0:Разработка переносимых приложений


Перед нами была поставлена задача написания программы управления комплексом, включающим три установки наведения, нашего производства. Управление комплексом должно осуществляться с чемоданчика с красной кнопкой. Чемоданчик был куплен на тайване Getac. Чемоданчик из литого люминия весит наверное 10 кило. Зато его не страшно выкинуть из самолета, может даже не сломается. Нам был выдан такой чемоданчик с предустановленным Linux МСВС 3.0.

В тех.задании значится разработка приложения которое работает на военном линуксе и на Windows. Собственно статья о том ка решаются такие задачи. Мы эту задачу слегка расширили. ПО должно собираться из исходников на любой доступной платформе: GNU/Linux, FreeBSD, Solaris, Windows 32/64 бит XP/7. 

Совместимость с MS Windows на уровне исходным кодов программ обеспечивается за счет сборки приложения в системе MinGW/Msys с использованием компиляторов GCC-4 и библиотек GNU. В проекте используются библиотеки и компиляторы, которые одновременно присутсвтуют на всех перечисленных платформах. Особенная сложность состоит в том как совмещать библиотеки с разными версиями, некоторые функции могут отсутсвовать потому что библиотека на военном линкусе устаревшая (примерно лет на пять), а некоторые функции уже устарели в новых версиях библиотек. Поэтому по каждой функции приходится смотреть в документацию и использовать только те фукнции, которые присутствуют во всех версиях.
Ниже приводится таблица верисй на чем удалось подружить и обеспечить переносимость прижоложений между платформами.
Таблица 1. Перечень приложений и библиотек GNU, использованных в проекте

Windows XP/7 (MinGW) GNU/Linux (Debian) Orcale Solaris 11/11
(development lic.)
Linux МСВС 3.0
Версия ОС
MINGW32_NT-6.1 1.0.17(0.48/3/2) 2011-04-24 23:39 i686 Msys Linux 3.3.0 May 18 2012 x86_64 GNU/Linux SunOS 5.11 11.0 i86pc i386 i86pc Linux 2.4.32-vniins42smp 00:14:27 MSD 2010 i686 i686 i386 GNU/Linux
GCC-4 4.6.2 4.7.0 4.5.2 4.1.3
2.24.10
2.24.10 2.20.1 2.12.12
glib-2.0
2.28.8
2.32.3
2.28.6
2.18.4
cairo
1.10.2
1.12.2 1.8.10 1.6.4
pango
1.29.4
1.30.0 1.28.3 1.18.3
libUSB
1.2.6
0.1.12
+
0.1.12
SDL

1.2.15 1.2.14 1.2.14
OpenSSL
1.0.0 29 Mar 2010
1.0.1c 10 May 2012 1.0.0e 6 Sep 2011 0.9.7b 10 Apr 2003
sqlite3

3.7.12.1




Графика была реализована с использованием GTK+ 2, работа с USB через драйвер и библиотеку libUSB, джойстик через SDL, файловая база данных Sqlite3 собиралась из исходников.

Vitaly Lipatov: Недовольство системой 

9 комментариев:

  1. После того, как у нас отобрали чемоданчик с красной кнопкой остался дистрибутив МСВС, ISO образ диска. Оказалось дистрибутив хорошо ставится на винтуальную машину VirtualBox, так что отладка и обновление новых версий ПО переместилось на виртуальную машину.

    ОтветитьУдалить
    Ответы
    1. Подскажите пожалуйста, есть ли в МСВС средства разработки? (интересует создание оконных приложений с кнопками, менюшками и т.д.)

      Удалить
  2. Там есть QT, есть GTK-2 и GCC версии см. таблицу выше.

    ОтветитьУдалить
    Ответы
    1. Этот комментарий был удален автором.

      Удалить
    2. А предустановленный QT там только в качестве библиотек или есть ещё gui приложение, что-то вроде Visual Studio в Windows, например...(Извиняюсь за возможно глупые вопросы, просто по работе пришёл приказ переводить всё ПО под МСВС, о котором никаких сведений не имеем:( ) Может реально установить какой-нибудь QT Creator например, если да, то какую версию искать?

      Удалить
  3. Нашел там документацию на QT-3.3.8 и утилиту Настройка QT-4 больше ничего нет. В менеджере программ значятся библиотеки QT-3.3.8b, QT-4.4.2, QT-4.6.3 (пакет разработки и webkit).

    ОтветитьУдалить
  4. Начните с установки МСВС с установочного диска на виртуальную машину VirtualBox. Ставится без проблем за пять минут. Потом сможете сами чего-то разобрать отпадет множество вопросов. Мы компилировали недостающие библиотечки из исходников. Кроме того мы умеем писать софт на одной операцинке, например на Debian или MinGW, где у вас есть все библиотечки и средства разработки, а потом компилировать на МСВС. При этом основой того что все скомпилиуется является использование той самой таблички сопоставления версий библиотек, используете только те функции, которые есть в старых библиотеках на МСВС.

    ОтветитьУдалить
  5. Добрый вечер, а есть возможность с Вами связаться по поводу МСВС?

    ОтветитьУдалить
    Ответы
    1. Связаться можно, открыл адрес почты в профиле.

      Удалить