使用Qt开发运行于WinCE上的程序
2010-05-10 09:23
781 查看
使用Qt开发运行于WinCE上的程序
简介 1一、编译Qt
SDK for WinCE,建立开发环境 1
1
编译环境
:
“Wince60standard(操作系统)_armv4i(处理器)_msvc2005(开发环境)” 1
2
编译步骤
(整个过程参见Qt文档) 2
二.代码编写 2
三、编译Qt-WinCE程序 3
四.
”Qt程序forWinCE”的部署 3
五.
测试 3
简介
QT的其中一种特性就是跨平台开发,因此当我们要用QT在不同(操作系统和硬件)平台下开发时,就要用QT的源码生成适合开发平台的GUI库。虽然奇趣的官方网站有各类平台的已编译好的QT安装包(如qt-win-opensource-4.4.3-mingw.exe、qt-wince-preview-4.4.0-beta1-vs2005.exe等),但有些平台还是没有提供安装包如嵌入式的,因此掌握QT源代码的编译安装方法也是学习QT的必修课。
一、编译Qt SDK for WinCE,建立开发环境
测试平台:Arm_Emulator_SDK_WVGA_R6
在这里通过实例介绍QT的编译方法。
1
编译环境 :
“Wince60standard(操作系统)_armv4i(处理器)_msvc2005(开发环境)”
操作系统:MicrosoftWindows 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等先生成一些辅助的交叉编译的工具。
然后,在后面的步骤中,则通过切换不同的INCLUDE及LIB目录,借助这一步生成的交叉编译工具来编译适用于目标平台上的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本质上是一致的,只需要设置好相应的INCLUDE及LIB等目录即可
四. ”Qt程序forWinCE”的部署
可以直接把上面开发的*.exe文件和其需要的*.dll一起CP到一个目录中。如果想将程序部署成*.cab形式的,在vs2005的“解决方案”中,点“文件”->“新建”->“项目”->点“其它”,其中有关于智能设备部署的,根据向导建立后,在新建的cab项目中点“属性”,最后,生成就行了。
五. 测试
对于开发机与目标机如何通信?这也是在部署的时候需要关心的问题。即如何在开发的时候,把自己本机上的文件拷贝到模拟器中运行。通过运行MicrosoftDevice emulator目录下的DeviceEmulator.exe,即可看到如下帮助信息
![](http://hi.csdn.net/attachment/201005/10/0_1273454693qEA8.gif)
其中/sharefolder即是用来模拟为闪存卡用的
对于模拟器上的运行,可以通过在模拟器界面中设置sharefolder的目录,然后在模拟器中则模拟出一个闪存盘作为开发机与目标机之间文件交互的中介,直接将上面需要部署的东西拷贝过去,在目标机器上运行即可。
相关文章推荐
- 使用Qt5.9开发UWP程序点击运行报错
- Qt官方开发环境生成的exe发布方式--使用windeployqt(windeployqt是单独的程序,放在低版本qt4目录下也可以运行的)
- 【编程】使用友善之臂mini2440开发嵌入式QT程序——不断更新中
- 使用VS2010开发Qt程序的一点经验(转载)
- 【Qt】VS开发Qt程序的国际化使用
- 使用Visual Studio .NET开发Qt程序
- 在WinCE程序开发中使用软件输入面板
- 安装Visual Studio2015后,使用VS2013开发的项目,在IIS访问都提示“公共语言运行时检测到无效的程序”的解决办法
- 使用VS2010开发Qt程序的4点经验(QT4到QT5的升级,更改sln文件,切换工程使用的Qt库,在VS的Solution Explorer视图中建立文件夹)
- 使用Qt和Enginio开发云端程序
- 用vs2008开发基于wince的程序如何直接运行在wince上
- WINCE 6.0 R3开发体验1-silverlight示例程序XAMLPERF的运行
- 使用Delphi 2005 开发 WinCE 程序
- VS2005下使用QT如无打VS2005的SP1补丁会导致QT程序无法运行
- 使用Python开发Android应用程序:第三节 在电脑上编写程序在手机上运行
- Windows XP 下使用命令行编译、运行 QT4 程序
- 在运行程序时报错:"如果在 Code First 模式下使用,则使用 T4 模板为 Database First 和 Model First 开发生成的代码可能无法 正常运行。若要继续使用 Database First 或 Model First,请确保在执行应用程序的 config 文件中指 定 Entity Framework 连接字符串。若要将这些从 Database First 或 Mod
- c++test使用qt中的 mingw 创建pthread_create程序无法运行的问题
- 在WinCE程序开发中使用软件输入面板