我已经为CE 6自定义sdk构建了Qt。我可以使用VS2005和KITL连接,并在设备上成功运行几个Qt示例。如果我将所有Qt dll复制到USB驱动器上带有.exe的目录并将其附加到设备上,我也可以运行示例。
然而,似乎任何使用QTDIR查找位置的东西都不起作用(插件和QML导入)。如果我将qml作为资源文件包含在项目中,我能够获得一些QML示例。
我没有尝试过任何工作(包括将插件/导入复制到带有dll的目录)。我无法设置QTDIR,因为wince没有环境设置。
我能够进一步使用静态构建与共享,但我相信像QtWebkit和QtMobility这样的“好东西”将无法用于静态构建。
在wince上部署是否有一些秘密我错过了?
答案 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。