Qt应用如何移植到Windows CE系统上

原创 2015年11月17日 22:30:49

        在刚学习Qt时,一直以为Qt良好的跨平台移植性会成为很火的编程语言,可是随着诺基亚的衰落发现自己错了,而且它的移植性也没有想象中的那么好,要不是毕业设计需要用到,本人早已放弃,下面我将一个多月时间查阅各种文献资料摸索出来,并实际操作成功的移植方法分享给大家。

        本移植方法的主要思路参考了http://blog.csdn.net/jdh99

        移植所需的软件大多数可在网上下载到(VS开发工具及相应补丁包、Qt开发工具及库文件),只是WinCE的软件需要在开发板附带的光盘中找,也可到飞凌开发板官网上下载。

一、 准备工作

         操作系统环境:Windows 7 旗舰版 x64
         PC端编译环境:VS2005 中文版
         嵌入式运行环境:WinCE6.0(运行于飞凌OK6410 ARM11 开发板)      

        Qt相关软件:

        Qt库包:  qt-everywhere-opensource-src-4.7.3.zip  //嵌入式WinCE版
                        qt-win-opensource-4.7.3-vs2008.exe  //Windows PC版

        Qt在VS中的辅助插件:qt-vs-addin_opensource_qt4

二、软件安装
1)VS2005安装顺序:
1、vs2005(chs_vs_2005_Pro_90_Trial)
2、Visual Studio 2005 Service Pack1(VS80sp1-KB926604-X86-CHS)
3、Visual Studio 2005 Service Pack1 Update for Windows Vista(VS80sp1-KB932230-X86-CHS)
4、Visual Studio 2005 Service Pack1 ATL Security Update(VS80sp1-KB971090-X86-INTL)
5、qt-vs-addin_opensource_qt4

2)WinCE安装顺序:
1、Windows Embedded CE 6.0
2、Windows Embedded CE 6.0 Platform Builder Service Pack 1
3、Windows Embedded CE 6.0 R2
4、Windows Embedded CE 6.0 R3
5、TE6410_CE6_SDK
(针对飞凌OK6410 ARM11 开发板)
三、针对WinCE的qt库配置编译
1、解压qt-everywhere-opensource-src-4.7.3.zip到e:盘下qt_wince文件夹
2、增加环境变量e:\qt_wince\bin
3、修改E:\qt_wince\mkspecs\wince60standard-armv4i-msvc2005中的qmake.conf文件中的
            CE_SDK = TE6410_CE6_SDK   # replace with actual SDK name
4、打开vs2005,打开工具->visual studio 2005 command prompt
5、输入命令:cd E:\qt_wince
6、输入命令:configure -platform win32-msvc2005 -xplatform wince60standard-armv4i-msvc2005.
   这一步是配置qt库,配置需要几分钟,配置成功会在E:\qt_wince\bin下面生成一些列工具.可以用checksdk.exe –list查看当前装的sdk版本.
7、输入命令: set INCLUDE=E:\Program Files (x86)\Microsoft Visual Studio 8\VC\ce\include;E:\Program Files (x86)\Windows CE Tools\wce600\TE6410 Board\Include\Armv4i
8、输入命令: set LIB=E:\Program Files (x86)\Microsoft Visual Studio 8\VC\ce\lib\armv4i;E:\Program Files (x86)\Windows CE Tools\wce600\TE6410 Board\Lib\ARMV4I
9、输入命令: set PATH=E:\Program Files (x86)\Microsoft Visual Studio 8\VC\ce\bin\x86_arm;%PATH%
10、输入命令: nmake
四、针对Windows的qt库配置编译
1、安装qt-win-opensource-4.7.3-vs2008.exe
2、打开vs2005,打开工具->visual studio 2005 command prompt
3、输入命令进入指定目录下:cd E:\Qt\4.7.3
4、在文件夹中找到以下四个文件删除:E:\Qt\4.7.3\src\script\tmp\moc\debug_shared\mocinclude.tmp
                                                             E:\Qt\4.7.3\src\script\tmp/moc\release_shared\mocinclude.tmp
                                                             E:\Qt\4.7.3\src\3rdparty\webkit\WebCore\tmp\moc\debug_shared\mocinclude.tmp
                                                             E:\Qt\4.7.3\src\3rdparty\webkit\WebCore\tmp\moc\release_shared\mocinclude.tmp
5、编译:configure -debug-and-release -platform win32-msvc2005
6、编译完成后nmake
五、应用程序移植

使用命令行方式编译应用程序:进入工程目录
1)生成es.pro,输入命令:
     E:\qt_wince\bin\qmake.exe -project -o es.pro

2)生成makefile文件,输入命令:
   E:\qt_wince\bin\qmake -spec E:\qt_wince\mkspecs\wince60standard-armv4i-msvc2005 -win32 -o Makefile es.pro
3)设置环境变量,输入以下命令:
set INCLUDE=E:\Program Files (x86)\Microsoft Visual Studio 8\VC\ce\include;E:\Program Files (x86)\Windows CE Tools\wce600\STANDARDSDK_600\Include\Armv4i
set LIB=E:\Program Files (x86)\Microsoft Visual Studio 8\VC\ce\lib\armv4i;E:\Program Files (x86)\Windows CE Tools\wce600\STANDARDSDK_600\Lib\ARMV4I
set PATH=E:\Program Files (x86)\Microsoft Visual Studio 8\VC\ce\bin\x86_arm;%PATH%
4)编译嵌入式版本应用程序,输入命令:
nmake release
生成目标文件es.exe
5)移植
通过USB将目标文件es.exe和一些库文件一起拷贝到目标嵌入式控制器上放在同一目录下。所需的库文件及相应路径为:
msvcr80.dll文件:Microsoft Visual Studio 8.0\VC\ce\DLL\armv4i
QtCore4.dll、QtGui4.dll、QtSql4.dll:Qte安装目录下的的lib目录里

注:以上qt至wince的移植中,如果“五、应用程序移植”nmake release时出错,可以通过编译工具VS2005及相关软硬件工具进行软件移植:
1、辅助工具准备:飞凌嵌入式ARM板(OK6410)、网线、Win7系统与嵌入式设备同步软件(32位或64位)
2、安装Win7系统与嵌入式设备同步软件(根据主机操作系统位数选择)
3、用网线将PC机与ARM板连接,并断开PC机原有Internet网络
4、交叉编译及移植步骤:
     1)在VS编译器中点击Qt下拉菜单,选择Open Qt Project File(.pro)并打开相应Qt项目
     2)在VS编译器中点击Qt下拉菜单,选择Qt Project Settings并选择Qt的嵌入式版本名称
     3)在VS编译器中点击工具下拉菜单,选择设备工具-设备-双击对应嵌入式设备名称,选择TCP连接传输
     4)配置使用指定的IP地址(192.168.1.*与设备IP地址一致且与电脑主机在同一网段)
     5)点击启动调试,过一会系统会将编译好的应用程序文件及相关库文件通过网线传输到ARM板中调试运行,在ARM板的显示屏上会显示Qt运行界面,表示移植成功。

        至此,Qt在Windows系统中开发出来的应用(一般用Qt Creator工具来开发)就可以顺利移植到装有WinCE系统的开发板上运行了。这恐怕是我见过的最繁琐的软件移植了。

版权声明:本文为博主原创文章,转载请注明出处。 举报

相关文章推荐

零基础学Qt4编程之WinCE平台上安装和使用Qt4的方法

嵌入式系统中经常采用WinCE作为操作系统,因而在WinCE上安装Qt是很常见的,下面就讲讲这方面需要注意的问题。本节将以一个实际的例子来说明整个的过程。笔者的使用的Samsung i718是基于ar...

基于Qt/Embedded嵌入式Linux GUI的移植开发

摘 要:本文简要阐述嵌入式Linux GUI用途及前景,分析了几种嵌入式GUI的基本架构,并详细叙述了基于Qt/Embedded图形用户系统在s3c2410处理器上的移植开发步骤,粗略指出了Qt/Em...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

Windows CE 系统进程外组件应用开发

这篇文章说明了如何使用WindowS CE 6.0系统的DCOM,开发com服务进程。向客户端提供跨进程的COM组件服务,以及自定义接口代理/存根dll的建立,注册。假定你需要创建一个实时的控制程序,...
  • tttyd
  • tttyd
  • 2011-03-10 17:05
  • 2824

Qt/Embedded在嵌入式Linux系统下的移植与应用

Qt/Embedded在嵌入式Linux系统下的移植与应用 1 Qt/Embedded开发环境介绍         Qt/Embedded应用程序的开发可以在安装了一个跨平台开发工具链的不同的...

Windows CE驱动N枪拍案惊奇系列 之 基于Wince5.0的DM9000A的驱动分析和移植步骤

Windows CE驱动N枪拍案惊奇系列之 基于Wince5.0的DM9000A的驱动分析和移植步骤 华清远见非著名讲师  O(∩_∩)O  牛牛猛   首先要找到驱动程的入口点,从dm900...

Qt应用程序如何监测另一个程序状态?(windows系统)

以前在做项目时有用过QProcess启动一个应用程序。 在按下按钮的槽函数中调用QProcess的start函数即可,非常的简单。但是这次不一样了,被调用的程序,并非我的程序启动的。我需要先 判断它...

Windows CE 6.0操作系统的特色及其应用

Windows CE 6.0在嵌入式操作系统领域广泛应用,Windows CE 6.0作为业内领先的软件工具为多种设备构建实时操作系统,例如:互联网协议(IP)机顶盒、全球定位系统(GPS)、无线投影...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)