пятница, 27 марта 2015 г.

Статическая сборка Qt 4.7.1 на Windows XP x86 SP3/Windows 10 x86_64, VS2008 для работы с WinCE5-устройством Weintek MT607i

Для работы с wince-устройствами, wince sdk нужна полная студия Visual Studio 2008 Professional. После установки студии скачиваем iso-образ service pack 1 http://www.microsoft.com/en-us/download/details.aspx?id=13276. Устанавливаем, если ещё нет, Daemon Tools Lite. Последняя пятая версия не подойдет для Windows XP. Из торрента скачиваем версию 4.49.1.0356, она без проблем запускается под Windows XP SP3 x86, монтируем скачанный образ и ставим SP1. На win10 есть встроенный эмулятор dvd-привода, к которому можно примонтировать iso-образ.

Устанавливаем Windows CE 5.0 Standard SDK http://www.microsoft.com/en-us/download/details.aspx?id=17310, он поддерживает устройство MT607i.

Версии 4.6.1, 4.6.2 выдавали ошибки при сборке qmake и падали при nmake. Скачиваем и распаковываем  Qt 4.7.1 https://download.qt.io/archive/qt/4.7/qt-everywhere-opensource-src-4.7.1.zip (например, в D:\Library\qtmobile4_7_1).

Для статической сборки самого qmake надо отредактировать следующий конфиг D:\Libraries\qtmobile4_7_1\mkspecs\common\wince:

Меняем строчки:

QMAKE_CFLAGS_RELEASE    = -O2 -MD
QMAKE_CFLAGS_LTCG       = -GL
QMAKE_CFLAGS_DEBUG = -DDEBUG -D_DEBUG -Zi -MDd

на

QMAKE_CFLAGS_RELEASE    = -O2 -MT
QMAKE_CFLAGS_LTCG       = -GL
QMAKE_CFLAGS_DEBUG = -DDEBUG -D_DEBUG -Zi -MTd

Запускаем Visual Studio 2008 command prompt (cmd) с уже определенными переменными среды:

d:

cd d:\Library\qtmobile4_7_1

configure.exe -platform win32-msvc2008 -xplatform wince50standard-armv4i-msvc2008 -static -confirm-license -opensource -no-accessibility -no-phonon -no-phonon-backend -no-qt3support -no-openssl -no-webkit -qt-sql-sqlite -nomake demos -nomake examples -stl -no-libjpeg

cd ./bin

setcepaths wince50standard-armv4i-msvc2008

cd ..

nmake


При сборке на win10 x86-84 возникает следующая ошибка "QtGuid.lib(jmemmgr.obj) : error LNK2019: ссылка на неразрешенный внешний символ getenv в функции jinit_memory_mgr
..\..\bin\qmlviewer.exe : fatal error LNK1120" (подробнее). Для обхождения ошибки я добавил флаг -no-libjpeg. Очищаем собранные бинарники (nmake confclean) и повторяем этапы сборки с configure

Для связи с устройством на winxp устанавливаем ActiveSync 4.5 http://www.microsoft.com/ru-ru/download/details.aspx?id=15 и Weintek ActiveSync Driver.

Информация собрана из следующих источников:
1) http://doc.qt.io/qt-4.8/wince-with-qt-introduction.html
2) http://doc.qt.io/qt-4.8/requirements-wince.html
3) http://doc.qt.io/qt-4.8/install-wince.html

4) https://stackoverflow.com/questions/14932315/how-to-compile-qt-5-under-windows-or-linux-32-or-64-bit-static-or-dynamic-on-v
5) http://doc.qt.io/qt-4.8/configure-options.html
6) https://wiki.qt.io/Building-Qt-4.7.4-for-WindowsCE-StandardSDK
7) http://vasinnet.blogspot.com/2011/04/blog-post.html

Комментариев нет:

Отправить комментарий