Qt Windows CE安装、开发及部署全解
创始人
2024-07-31 22:20:38
0

本文讲解的是Qt Windows CE安装、开发及部署全解,对于Qt大家都已经很熟悉了,那么让我们直接看下面的内容。

Qt-WinCE全解

一、Qt 嵌入式环境的搭建

首先,下载Qt的嵌入式开发包qt-embedded-wince-opensource-src-4.4.0.zip

然后,下载VS2005。

最后,下载一个嵌入式开发的SDK,如Windows Mobile 5.0 Pocket PC SDK,可以在微软的官方网站上下载到!

 还有一个是同步的软件 Microsoft ActiveSync4.5中文简体版。

安装

1、首先安装VS2005,很简单,按照向导来,在自定义安装中务必选择“智能设备开发”。

2、关于Microsoft ActiveSync4.5的安装更是“straightforward”。在此不再多说!

3、然后,安装Windows Mobile或是其它版本的SDK,可以用自定义的SDK!简单

4、比较麻烦的就是qt-embedded-wince的安装。参照下面的步骤:

(1)解压,将解压后的文件夹放到一个不含空格的路径中,如我的:f:\penguinx\qt_wince,qt_wince即为此文件夹。然后设置环境变量:右键“我的电脑”->“属性”->点“高级”标签->“环境变量”选项->在"PATH"中添加路径“f:\penguinx\qt_wince \ bin”。

(2)编译前戏。首先,配置编译选项,进行VS2005的命令行中,进入解压的文件夹,然后执行如下:configure -platform win32-msvc2005 -xplatform wince50standard-armv4i-msvc2005可以根据自己的板子及手机配置来选择其它的嵌入式的xplatfrom。这个过程可能需要十几分钟。执行完后,再次在VS2005中设置临时的环境变量,编译时要用到:如下:

  1. set INCLUDE=D:\Program Files\Microsoft Visual Studio 8\VC\ce\include;D:\Program Files\Windows CE Tools\wce500\Windows Mobile 5.0 Pocket 
  2. PC SDK\Include\Armv4i  
  3. set LIB=D:\Program Files\Microsoft Visual Studio 8\VC\ce\lib\armv4i;D:\Program Files\Windows CE Tools\wce500\Windows Mobile 5.0 Pocket 
  4. PC SDK\Lib\ARMV4I  
  5. set PATH=D:\Program Files\Microsoft Visual Studio 8\VC\ce\bin\x86_arm;%PATH% 

在此我期望能根据自己的软件安装情况将上面的目录“拿来主义”一下。设 置完后,执行nmake,过两、三个钟头后,你就可以Enjoy your journey.

最后,执行nmake,安装完毕!我的Qt-WinCE安装在 f:\penguinx\qt_wince

二、编译Qt-WinCE程序

命令行法(不用IDE):

首先、用VS2005命令行进入要编译的程序目录(此目录最好就在安装目录f:\penguinx\qt_wince下),执行< f:\penguinx\qt_wince >bin\qmake.exe –project –o example.pro  其中,Install Qt Path为你的Qt-WinCE的安装目录。这个时候,可以产生example.pro文件。

然后、就是产生Makefile的时候:在VS2005命令行下输入:

f:\penguinx\qt_wince\bin\qmake -spec ..\mkspecs\wince50standard-armv4i-msvc2005 -win32 -o Makefile example.pro 此时,恭喜你,Makefile文件已经产生。

最后,就是用nmake来编译和链接程序了。先将安装时的环境变量(三个set)在当前VS2005命令行下重新执行一遍。否则会出现如下错误:

cl: 命令行 warning D9002 :忽略未知选项“-QRarch4T”

cl: 命令行 warning D9002 :忽略未知选项“-QRinterwork-return”

  1. main.cpp  
  2. mainwindow.cpp  
  3. f:\penguinx\qt_wince\include\qtgui\../../src/gui/widgets/qmenu.h(144) : error C2 

146: 语法错误 : 缺少“;”(在标识符“wceMenu”的前面)

  1. f:\penguinx\qt_wince\include\qtgui\../../src/gui/widgets/qmenu.h(144) : error C4 

#p#

430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int

  1. f:\penguinx\qt_wince\include\qtgui\../../src/gui/widgets/qmenu.h(144) : error C4 

430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int

  1. f:\penguinx\qt_wince\include\qtgui\../../src/gui/widgets/qmenu.h(144) : warning 

C4183: “wceMenu”: 缺少返回类型;假定为返回“int”的成员函数。

然后,执行nmake,看着一行的白银流失完后,就是金子(你的exe文件)了。

注意:在执行nmake的时候,可能会看到如下错误信息:

  1. link /LIBPATH:"f:\penguinx\qt_wince\lib" /LIBPATH:"f:\penguinx\qt_wince\  
  2. lib" /NOLOGO /NODEFAULTLIB:OLDNAMES.LIB /DEBUG /SUBSYSTEM:WINDOWSCE,5.00 /MACHIN  
  3. E:THUMB /OUT:debug\node.exe @C:\DOCUME~1\User\LOCALS~1\Temp\nm6B3.tmp  
  4. tmp\obj\debug_shared\main.obj : fatal error LNK1112: 模块计算机类型“X86”与目标 

计算机类型“THUMB”冲突

  1. NMAKE : fatal error U1077: “"D:\Program Files\Microsoft Visual Studio 8\VC\ce\b  
  2. in\x86_arm\link.EXE"”: 返回代码“0x458” 

这种错误搞的我很无奈,我不执行nmake,直接执行nmake release就没有这种错误?这种错误可能是因为“环境变量”中“PATH”中设置了“f:\penguinx\qt_wince\bin”。在我把这个变量去掉后,重新打开VS2005命令行(因为得重新读取PATH变量)。然后按照上面的步骤做下来,最后用nmake重新执行一遍,很好很流畅!

三、Qt –WinCE程序的部署(非打包)

可以直接把上面开发的*.exe文件和其需要的*.dll一起CP到一个目录中,这些dll一般有:

  1. D:\Program Files\Microsoft Visual Studio 8\VC\ce\Dll\armv4i\ msvcr80.dll  
  2. F:\penguinx\wince_vs2005\lib\ QtCore4.dll  
  3. F:\penguinx\wince_vs2005\lib\QtGui4.dll 

其它的根据自己项目的需要CP下,就行了。

如果想将程序部署成*.cab形式的,在上面的“解决方案”中,点“文件”->“新建”->“项目”->点“其它”,其中有关于智能设备部署的,就它了(我在实验室机子上开发的,回来写手记,所以具体的操作记的不是非常清楚,将就!)。根据向导建立后,在新建的cab项目中点“属性”,最后,生成就行了。CP到板子就可以运行了。

注意:所有的CP都是用ActiveSync软件通过USB传输的,当然可以用其它传输手段,最终能上板子就行。

 

  1. -Zm200 -w34100 -w34189 -Zm200 -w34100 -w34189 -w34100 -w34189 

注意在WinCE部署时的版本,如果设备上的WinCE版本比开发用的版本低的话,将显示“****, 需要更新的Windows版本”云云。

  1. /SUBSYSTEM:WINDOWSCE,5.00 /MACHINE:THUMB  
  2. /SUBSYSTEM:WINDOWSCE,5.00 /MACHINE:THUMB 

小结:Qt Windows CE安装、开发及部署全解的内容介绍完了,不知道你的环境安装、部署好了没有,感谢您参考本文章,有什么需要,请留言。

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...