现在的位置: 首页 > 综合 > 正文

使用Qt开发运行于WinCE上的程序

2014年03月26日 ⁄ 综合 ⁄ 共 3016字 ⁄ 字号 评论关闭

 

 使用Qt开发运行于WinCE上的程序

 

简介

QT的其中一种特性就是跨平台开发,因此当我们要用QT在不同(操作系统和硬件)平台下开发时,就要用QT的源码生成适合开发平台的GUI库。虽然奇趣的官方网站有各类平台的已编译好的QT安装包(如qt-win-opensource-4.4.3-mingw.exeqt-wince-
preview-4.4.0-beta1-vs2005.exe
等),但有些平台还是没有提供安装包如嵌入式的,因此掌握QT源代码的编译安装方法也是学习QT的必修课。


一、编译Qt SDK for WinCE,建立开发环境

测试平台:
Arm_Emulator_SDK_WVGA_R6

在这里通过实例介绍QT的编译方法。


1
编译环境 :
“Wince60standard(
操作系统)_armv4i(处理器)_msvc2005(开发环境)”

操作系统:Microsoft
Windows XP Professional
版本SP2

编译器:MSVC2005

QT版本:qt-everywhere-4.6.0.tar.gz

WinceSDK:
Arm_Emulator_SDK_WVGA_R6.sdk


2
编译步骤
(整个过程参见Qt文档)

1.
QT源码解压到f盘,文件夹重命名为“WinceQt”

2.
进入“Visual Studio
2005
命令提示”

3.
在命令提示行中进入QT所在目录路径

4.
其次执行以下命令:

configure
-platform win32-msvc2005 -xplatform wince60standard-armv4i-msvc2005

根据板子或手机配置来选择嵌入式的xplatform,这个过程大约需要十分钟左右。

(实际上这一步的作用是利用本平台上的cl.exe等先生成一些辅助的交叉编译的工具。

然后,在后面的步骤中,则通过切换不同的INCLUDELIB目录,借助这一步生成的交叉编译工具来编译适用于目标平台上的SDK。)

5.
执行完毕后,再次在VS2005中设置临时的环境变量,编译时要用到,如下:

set
INCLUDE=D:/Program Files/Microsoft Visual Studio
8/VC/ce/include;C:/Program Files/Windows CE Tools/wce600/
Arm_Emulator_SDK_WVGA_R6/Include/armv4i

set
LIB=D:/Program Files/Microsoft Visual Studio
8/VC/ce/lib/armv4i;C:/Program Files/Windows CE Tools/wce600/
Arm_Emulator_SDK_WVGA_R6/Lib/armv4i

set
PATH=D:/Program Files/Microsoft Visual Studio
8/VC/ce/bin/x86_arm;%PATH%

设置完毕后,执行命令“nmake”,这个过程需要一、两个钟头。

 

Tips

以上过程其实可以写成一个批处理命令,新建一个名为“c.bat”的批处理文件,文件内容如下:

echo
Setting up a VC2005/QtE only environment...

configure
-platform win32-msvc2005 -xplatform wince60standard-armv4i-msvc2005
-fast -no-webkit

set
INCLUDE=D:/Program Files/Microsoft Visual Studio
8/VC/ce/include;C:/Program Files/Windows CE Tools/wce600/
Arm_Emulator_SDK_WVGA_R6/Include/armv4i

set
LIB=D:/Program Files/Microsoft Visual Studio
8/VC/ce/lib/armv4i;C:/Program Files/Windows CE Tools/wce600/
Arm_Emulator_SDK_WVGA_R6/Lib/armv4i

set
PATH=D:/Program Files/Microsoft Visual Studio
8/VC/ce/bin/x86_arm;%PATH%

nmake

 

二.代码编写

这步和普通的QT代码没有什么区别,见QT自带的例程。

 

三、编译Qt-WinCE程序

命令行法(不用IDE)

设置临时环境变量:(同样可写成.bat文件)

set
INCLUDE=D:/Program Files/Microsoft Visual Studio
8/VC/ce/include;D:/Program Files/Windows CE Tools/wce600/
Arm_Emulator_SDK_WVGA_R6/Include/Armv4i

set
LIB=D:/Program Files/Microsoft Visual Studio
8/VC/ce/lib/armv4i;D:/Program Files/Windows CE Tools/wce600/
Arm_Emulator_SDK_WVGA_R6/Lib/ARMV4I

set
PATH=D:/Program Files/Microsoft Visual Studio
8/VC/ce/bin/x86_arm;%PATH%

首先、用VS2005命令行进入要编译的程序目录,执行H:/qt4.5/wince
/bin/qmake.exe –project –o example.pro
。这个时候,可以产生example.pro文件。

然后、在VS2005命令行下输入:

../bin/qmake
-spec ../mkspecs/wince60standard-armv4i-msvc2005 -win32 -o Makefile
example.pro
此时,Makefile文件已经产生。

使用IDE:

IDE本质上是一致的,只需要设置好相应的INCLUDELIB等目录即可

 


. ”Qt程序forWinCE”的部署

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

如果想将程序部署成*.cab形式的,在vs2005的“解决方案”中,点“文件”->“新建”->“项目”->点“其它”,其中有关于智能设备部署的,根据向导建立后,在新建的cab项目中点“属性”,最后,生成就行了。

 

五. 测试

对于开发机与目标机如何通信?这也是在部署的时候需要关心的问题。即如何在开发的时候,把自己本机上的文件拷贝到模拟器中运行。通过运行Microsoft
Device emulator
目录下的DeviceEmulator.exe,即可看到如下帮助信息

 

其中/sharefolder即是用来模拟为闪存卡用的

对于模拟器上的运行,可以通过在模拟器界面中设置sharefolder的目录,然后在模拟器中则模拟出一个闪存盘作为开发机与目标机之间文件交互的中介,直接将上面需要部署的东西拷贝过去,在目标机器上运行即可。

 

 

抱歉!评论已关闭.