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系统的开发板上运行了。这恐怕是我见过的最繁琐的软件移植了。

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

相关文章推荐

Qt For Wince平台的搭建【vs2008 】

首先得感谢0XFAN,帮我解决了不少麻烦,还有小A,以及Google~~~ 我需要搭建的平台是vs2008+qt for wince +wince5.o【目标板子是EM9161,这个是后来才确定的】当...

QT for Windows CE 5.0/6.0

我自己没有用过,看到这部分内容,感觉不错,转来放在自己的空间中,供以后学习。http://topic.csdn.net/u/20091209/10/7c7d4359-2db1-4a39-ae09-8e...

配置qt + wince6.0 + vs2005环境(转载+原创)

软件版本说明: 1.操作系统:win7 64位 2.wince上的Qt库版本:qt-everywhere-opensource-src-4.7.3.zip 3.Wince6.0 4.VS200...
  • TsaI_s
  • TsaI_s
  • 2016年01月06日 19:20
  • 1367

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

  使用Qt开发运行于WinCE上的程序 简介 1一、编译Qt SDK for WinCE,建立开发环境 11 编译环境 : “Wince60standard(操作系统)_armv4i(处理器)_...

Qt4.8.7 linux 程序移植到 Qt5.9 windows 记录过程

通用改变 平台切换引发的改变 Qt版本切换引发的改变通用改变来源1 借鉴2 默认使用增删文件的方法适配平台,在 pro 中用 win32、unix 加以区分。毕竟程序是用来看的,不是文件 改什么也不...
  • Dr_Abel
  • Dr_Abel
  • 2017年08月13日 15:02
  • 192

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

  使用Qt开发运行于WinCE上的程序 简介 1一、编译Qt SDK for WinCE,建立开发环境 11 编译环境 : “Wince60standard(操作系统)_armv4i(处理器)_...

WINCE6.0下载地址

Windows Embedded CE 6.0下载地址:用url地址加文件名,一共364个文件,3.76Ghttp://download.microsoft.com/download/a/0/9/a0...

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

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

车载系统之 Windows CE 应用软件框架设计

由于 Windows CE 系统的标准界面无法满足车载及其它产品的需求,一般使用 Windows CE 的产品都会采用自定义、个性化的 UI。UI 的实现方案也是千差万别,美观是最基本的要求。其它如扩...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Qt应用如何移植到Windows CE系统上
举报原因:
原因补充:

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