为Wince工作的Qt构建,但没有插件或导入工作

时间:2012-01-02 20:17:23

标签: qt windows-ce

我已经为CE 6自定义sdk构建了Qt。我可以使用VS2005和KITL连接,并在设备上成功运行几个Qt示例。如果我将所有Qt dll复制到USB驱动器上带有.exe的目录并将其附加到设备上,我也可以运行示例。

然而,似乎任何使用QTDIR查找位置的东西都不起作用(插件和QML导入)。如果我将qml作为资源文件包含在项目中,我能够获得一些QML示例。

我没有尝试过任何工作(包括将插件/导入复制到带有dll的目录)。我无法设置QTDIR,因为wince没有环境设置。

我能够进一步使用静态构建与共享,但我相信像QtWebkit和QtMobility这样的“好东西”将无法用于静态构建。

在wince上部署是否有一些秘密我错过了?

1 个答案:

答案 0 :(得分:0)

追踪它。在src / corelib / io / qfilesystemiterator_win.cpp中有一个代码块:

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

wince(6.0)的windowsVersion的枚举是不同的,导致它触发为true而不是false。在

中包装上述代码
#ifndef Q_OS_WINCE
...
#endif

解决了这个问题。

请注意,我发现了一个针对Windows Embedded Compact 7补丁的git repo(从4.8.0开始)不包含在Qt中。此修复是其中一项更改。如果您正在使用4.8和wince(甚至是CE 6),请查看https://qt.gitorious.org/qt/jaanttils-qt/graph/WEC7_Patches。我需要在顶部进行一些更改,但我认为它们特定于我正在使用的sdk。