Qt build для Wince работает, но плагинов и импорта не работает - PullRequest
1 голос
/ 03 января 2012

У меня есть сборка Qt для CE 6 Custom SDK. Я могу использовать VS2005 и соединение KITL и успешно выполнить несколько примеров Qt на устройстве. Я также могу запустить примеры, если я скопирую все библиотеки Qt в каталог с EXE-файлом на USB-накопителе и подключу его к устройству.

Однако кажется, что все, что использует QTDIR для поиска местоположения, не работает (плагины и импорт QML). Мне удалось заставить работать несколько примеров QML, если я включил qml в проект в виде файла ресурсов.

Ничего из того, что я пробовал, не работает (включая копирование плагинов / импорт в каталог с dll). Я не могу установить QTDIR, так как у wince нет настроек окружения.

Мне удалось продвинуться немного дальше со статической сборкой против общей, но я считаю, что такие "хорошие вещи", как QtWebkit и QtMobility, не будут доступны для статических сборок.

Есть ли какой-то секрет развертывания на том месте, где мне не хватает?

1 Ответ

0 голосов
/ 10 января 2012

Отследил это. В src / corelib / io / qfilesystemiterator_win.cpp есть фрагмент кода:

if (QSysInfo::windowsVersion() >= QSysInfo::WV_WINDOWS7) {
    dwAdditionalFlags = 2;  // FIND_FIRST_EX_LARGE_FETCH
    infoLevel = 1 ;         // FindExInfoBasic;
}

Перечисления для windowsVersion для wince (6.0) отличаются, в результате чего это срабатывает как true вместо false. Оберточный код в

#ifndef Q_OS_WINCE
...
#endif

исправляет проблему.

Обратите внимание, я нашел git-репо для патчей Windows Embedded Compact 7, который (по состоянию на 4.8.0) не включен в Qt. Это исправление является одним из изменений. Проверьте https://qt.gitorious.org/qt/jaanttils-qt/graph/WEC7_Patches, если вы работаете на 4.8 и вздрагиваете (даже CE 6). Мне понадобилось несколько изменений сверху, но я думаю, что они были специфичны для SDK, который я использую.

...