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

来源:互联网 发布:类似易企秀的h5源码 编辑:程序博客网 时间:2024/04/29 07:08

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

0 0