Qt for WinCE 环境搭建心得李振宇2011-10-17由于c#版终端软件在WinCE终端上运行不稳定,因此考虑用C++(Qt)重新开发,以前用Qt的SDK安装很方便,可是Qt Wince环境必须要编译Qt源代码,为了搭建环境经历了很多周折,历尽艰辛,花了3天时间,终于搞定了,现把主要步骤和注意事项记下,以留备用。
原来的开发环境设计msvc2005 + qt4.7.4 + qt-vs-addin1.1.9 (qt的此两项为当前最新版本)可是由于qt4.7.4在编译(for wince)时出现错误,此为qt4.7.4的一个Bug(见资料1),因此改为qt4.7.3。
msvc2005在安装win32版时,由于只有msvc2008编译版,重新编译麻烦,因此改为msvc2008,否则Debug版编译有问题(见资料2)。
还有qt-vs-addin1.1.9在和msvc2008,wince6.0搭配有问题,加不了qt库(见资料3),因此改用qt-vs-addin1.1.8。
开发板方面用的是ARM9的SmartArm3250(wince 6.0)。
最终开发环境为msvc2008 + qt4.7.3 + qt-vs-addin1.1.9资料1 : qt4.7.4 for wince bug现象:编译qt库时出现错误error LNK2019: unresolved external symbol gmtime referenced in function png_convert_from_time_t参考资料:https:///browse/QTBUG-21331Description:When building the Windows CE version of Qt4.7.4 (using e.g., configure -platform win32-msvc2008 -xplatform wincewm60professional-msvc2008, linking (nmake) fails with the following output...Creating library ..\..\lib\QtGuid4.lib and object ..\..\lib\QtGuid4.exppngwrite.obj : error LNK2019: unresolved external symbol gmtime referenced in function png_convert_from_time_t..\..\lib\QtGuid4.dll : fatal error LNK1120: 1 unresolved externalsFunction gmtime is not available under Windows CE / Windows Mobile, so that would explain the linker error. I marked the Component as Image formats, as it seems to be related to pngwrite / libpng.Answer:But QT 4.7.4 for WinCE have problems with maximized forms ( form.showMaximized() ) I have to get back to 4.7.3 version.资料2 : msvc2005 Debug版不能用qt-win-opensource-4.7.3-vs2008.exe参考资料:/yibobin/blog/item/7fe8b9f01cbd76d47831aa28.html结论1:如果你想把Qt4.6.2安装在VS2005中,又不想花时间编译,请下载和安装qt-win-opensource-4.6.2-vs2008,并单独编译“QT安装路径\src\winmain\”结论2:在安装qt-win-opensource-4.6.2-vs2008(msvc9/vs2008已编译版)之前千万不要安装qt-sdk-win-opensource-2010.02.1(miniGW已编译版),如果不幸安装了,请先卸掉它,切记!资料3:qt-vs-addin1.1.9和msvc2008存在兼容性问题现象:在vs2008添加qt库时出现错误this qt version is not compatible to your current visual studio. Qt builds VS version:0 current version:1500。
参考资料:https:///browse/QTVSADDINBUG-87安装准备:1.Visual Studio 2008 + vs2008 sp12.ActiveSync4.5(ActiveSyncsetup_PConline.msi)3.开发板SDK (SmartARM3250.msi)4.qt-everywhere-opensource-src-4.7.3.zip 编译为wince5.qt-win-opensource-4.7.3-vs2008.exe 做本机开发测试6.qt-vs-addin-1.1.8.exe VS IDE开发插件安装vs2008就不多说了,注意安装vs2008时选上智能设备开发包。
用winXp和ie8的注意了,vs2008和ie8在winXp上有冲突,解决办法见资料4。
资料4:IE8将导致VS2005(VS2008)行为异常参考资料:/archiver/tid-875918.html今天突然发现VS2005不能用向导创建Win32智能设备项目,但是直接打开sln文件和程序的编译链接没有问题。
开始很莫名其妙不知道为什么,因为自己这几天似乎没弄什么东西。
想了想,好像装IE8了,就用ie8和vs2005的关键字搜索了一下,果然很多人遇到类似的问题:“IE8和VS2005以及VS2008存在严重兼容性问题,微软官方论坛版主已经证实了”在这里提醒一下准备装IE8的开发者,要考虑考虑。
----------------------------------------------------3.31更新已有对应方案,来自微软的Visual C++开发小组。
具体方法是:在注册表里的下面位置HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\ 添加一个为1000的新项目,再在这个项目里添加一个值为0的DWORD项目1207。
---恢复vs2005向导异常.reg内容---Windows Registry Editor Version 5.00[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\InternetSettings\Zones\1000]"1207"=dword:00000000安装ActiveSync4.5很简单。
安装开发板SDK时遇到问题,提示解决办法是安装是不要选择文档(Documentation),具体的参照资料5。
资料5 单机搭建WinCE开发环境(四)参考资料:/we-hjb/archive/2008/08/04/1260425.html前几天一直在测试VS2005下WinCE6.0中文模拟器的使用,基本上没有问题了。
今天便在VS2008中安装了一下WinCE6.0中文模拟器的SDK,又遇到了一些小问题,贴出来跟大家分享一下,也算是对单机搭建WinCE开发环境的一个补充。
第一次安装时,一路默认,开始一切正常,到安装快完成的时候出现了状况,先后出现了下面的两个提示,点完OK后就Roll Back了。
重新试了两遍,都是如此。
难道VS2008不支持WinCE6.0?这似乎不大可能。
那问题在哪里呢?像这种没头没脑的问题,只能“百度一下”了,结果“抱歉”。
再Go一下,果然有6项相关的网页。
其中有一篇提到,在VS2008中安装WinCE6.0的SDK时,不能完全安装,必须选择定制,并把.NET Compact Framework取消掉。
按照这个说法重新安装了一遍,问题依然存在。
Faint~~为什么还是不行呢?再安装一遍,把Documentation也取消掉,其他两项Native Development Support和Common保留,竟然可以了!新建了一个MFC的工程,编译下载测试,完全没有问题,这证明VS2008确实是支持WinCE6.0应用程序的开发的!不过下面这两个问题到底是怎么回事呢?ToolsMsmCA(Error):IHxFilters filter registration failure:Err = 0x80040305,Context = pFilters->SetNameSapce(Namespace)ToolsMsmCA(Error): IHxRegisterSession transaction failure: Err = 0x8004036f, pRegSession->CommitTransaction()把.NET CF取消掉就可以,那应该跟它有一定的关系。
是不是.NET CF2.0和3.5引起的?不得而知,只是猜测罢了。
不管怎样,能用就好。
回头有时间再找找看原因,当然如果您知道这是怎么回事,也请指教啊。
^_^下面编译Qt源码,比较麻烦,步骤参考资料6:资料6 编译Qt For Wince参考资料:/bbs/read.php?tid=11920/QustDong/article/details/5672678/symbian-268033.htmQt-WinCE全解声明:花费了三天时间,周转各大网站,终于在今天将自己的第一个Qt程序在“小I(SAMSUNG i718+)”上跑了起来!一、Qt 嵌入式环境的搭建a)首先,下载Qt的嵌入式开发包qt-embedded-wince-opensource-src-4.4.0.zipb)然后,下载VS2005。
c)最后,下载一个嵌入式开发的SDK,如Windows Mobile 5.0 Pocket PC SDK,可以在微软的官方网站上下载到!d)还有一个是同步的软件Microsoft ActiveSync4.5中文简体版。
------------------------------------------安----装----------------------------------e)首先安装VS2005,很简单,按照向导来,在自定义安装中务必选择“智能设备开发”。