AT2440EVB_II+WINCE5.0板上跑QT程序

时间:2020-12-25 17:54:41

 

 

平台信息

目标平台:AT2440EVB_II(ARM9)+WINCE5.0

开发平台:WINDOW XP+VS2008+ Qte4.5.2

开发平台搭建

1.VS2008安装:

傻瓜式安装,注意进行到下图界面时勾选智能设备可编程技术,这个很重要。

AT2440EVB_II+WINCE5.0板上跑QT程序

已经安装了VS2008的可以在控制面板->添加删除程序,对已经安装的VS2008进行修改。

2.同步软件

下载安装Microsoft ActiveSync4.5,这个是通过USB接口实现目标板与开发平台同步的软件。

3.将QT集成到VS2008中:

下载安装Qt.Visual.Studio.Integration,笔者版本是1.4.0。具体安装步骤自己摸索一下,如有问题可与笔者联系。集成了以后,你就可以在VS下开发QT程序了,相当强大!!!

4.PB5:

作用:这个是定制WINCE内核的,同时也是生成SDK(软件开发工具包)的。

安装wince5.0(厂家光盘上提供的),请先安装dotnetfx(这个是安装Microsoft .NET Framework 1.1),然后双击Microsoft Windows CE 5.0.msi安装wince5.0。

在Microsoft Windows CE 5.0.msi的安装时注意下图:

 AT2440EVB_II+WINCE5.0板上跑QT程序

安装完成以后,在开始->程序-> Microsoft Windows CE 5.0中会出现Platform. Builder 5.0工具。

5.SDK:

根据AT2440EVB-II.pdf中定制一个内核,同时导出相应SDK。Platform->SDK->New SDK,名字可以填Test,然后一直下一步,直到出现下图界面时注意要勾选××ded Visual C++ 4.0 support:

AT2440EVB_II+WINCE5.0板上跑QT程序

  

如果选错了,或者名字不适合,还可以在完成之后,进入Platform->SDK->Configure SDK中进行修改(注意CPU选项卡内容与目标板对应)。

然后选择Platform->SDK->Build SDK,然后等SDK生成完成后,看到如下提示信息,点击Done。

AT2440EVB_II+WINCE5.0板上跑QT程序

然后到上图显示路径下找到安装包,并傻瓜式安装。安装完成以后,你的开发平台就拥有了板子的开发包了。

6.Qte4.5.2:

6.1.下载qt-××ded-wince-opensource-src-4.5.2.zip,解压到一个没有空格的目录,最好也不要有中文。

6.2.然后将Qte目录下的bin文件夹路径加入到环境变量PATH下。右键我的电脑->属性->高级->环境变量。

6.3.然后打开VS2008下的命令行窗口,工具->Visual Studio 2008 Command Prompt,配置编译Qte的库都需要在这个窗口下。

6.4.首先配置Qte库,进入Qte目录,输入命令configure –platform. win32-msvc2008 –xplatform. wince50standard-armv4i-msvc2008,这里的配置需要参考自己的目标板平台和开发平台。

6.5.在编译Qte库以前需要修改一下环境变量,还是在刚才的命令行窗口下,输入命令如下:

6.6.环境变量设置:

修改INCLUDE:

set INCLUDE=D:\Program Files\Microsoft Visual Studio 9.0\VC\ce\include;D:\Program Files\Windows CE Tools\wce500\AT2440H8\Include\Armv4i

修改LIB:

set LIB=D:\Program Files\Microsoft Visual Studio 9.0\VC\ce\lib\armv4i;D:\Program Files\Windows CE Tools\wce500\AT2440H8\Lib\ARMV4I

修改PATH:

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

这里说明几点注意

第一,“D:\Program Files\Microsoft Visual Studio 9.0”是笔者的VS2008的安装路径,而“D:\Program Files\Windows CE Tools\wce500\AT2440H8”是笔者根据定制的内核导出的SDK的安装路径,AT2440H8是该SDK的名字。这里只是一个参考,具体 设置,读者应该以自己的开发平台上的路径为准;

第二,INCLUDE和LIB两个变量设置时,不用包含旧值;

第三,这里的SDK很重要,一定要针对目标板和定制的内核,不然会出现不可预料的问题。

6.7.编译Qte库,在设置好的环境变量的命令行窗口下输入nmake,然后就是等待它编译完成,根据PC的配置不同,时间也不同,笔者编译大约花了1个半小时。

当然,你的开发平台可能与上面提到的有些许不同,这样的话,只用根据自己的平台修改相应的设置就可以了。最后,如果以上6步都已经完成了的话,那恭喜你了,你的开发环境已经搭建好了。

生成WINCE下的QT程序

平台搭建好以后,Qt的开发就比较容易了。基本思想就是用VC自带的交叉编译器利用编译过的Qte的库,去编译你的目标板的Qt程序,最终生成板子上的EXE可执行程序。其实编译目标板上的Qt程序和PC上的Qt程序大同小异,只是在工程属性上有不同而已。

下面,我将以一个编译过的Qt库中的example程序来讲解。

1.编译你的目标平台上的Qt程序:

当你建好你的Qt工程以后,在编译前修改一下你的工程属性。

1.1.选择项目->属性,点击最上面的配置管理器按钮,配置选择Release,平台选择STANDARDSDK_500(ARMV4I)(如果没有STANDARDSDK_500(ARMV4I)平台,可新建一个,不要从其他平台复制属性),如下图所示:

AT2440EVB_II+WINCE5.0板上跑QT程序

1.2.在属性页中,修改配置属性->C/C++->常规中的附加包含目录, 添加你编译过的Qte库的中的以下目录:include目录,include\QtGui目录,include\QtCore目录,mkspecs \wince50standard-armv4i-msvc2008目录以及当前工程目录。以上这些目录是编译Qt工程所必须要包含的附加包含目录,你可 以根据你自己的Qt工程添加需要的Include目录。如下图所示:

AT2440EVB_II+WINCE5.0板上跑QT程序

  

1.3.修改配置属性->C/C++->命令行中的附加选项,修改为-Zm200 -w34100 -w34189 -w34100 -w34189(具体用处与意思我也不知道,还请高手指教),如下图所示:
AT2440EVB_II+WINCE5.0板上跑QT程序

1.4.修改配置属性->链接器->常规中的附加库目录,添加上编译过的Qte库的Lib目录,如下图所示:

AT2440EVB_II+WINCE5.0板上跑QT程序

1.5.修改配置属性->链接器->输入中的附加依赖库,添加编译过的Qte库中Lib文件夹下的以下3个库文件:qtmain.lib、QtGui4.lib、QtCore4.lib,如下图所示。可将这三个复制到工程文件夹下,否则需要添加绝对路径。

AT2440EVB_II+WINCE5.0板上跑QT程序

1.6.修改配置属性->链接器->命令行中的附加选项,修改为/SUBSYSTEM:WINDOWSCE,5.00 /MACHINE:THUMB /SUBSYSTEM:WINDOWSCE,5.00 /MACHINE:THUMB(具体意思也不明白),如下图所示:

AT2440EVB_II+WINCE5.0板上跑QT程序

1.7.ui文件的处理,ui文件是qt的图形界面资源文件,而最后使用的是由这个ui文件转换而来的.h文件,这个工作不是VC的编译器做的,而是QT库提供的uic.exe做的。一般来说你的工程建好以后,你的ui文件都会设置好另行编译的属性。如果没有,你可以自行设置。

右击ui文件->属性->配置属性->自定义生成步骤->常规,修改如下:

命令行        uic.exe *.ui –o ui_*.h

输出        ui_*.h

附加依赖项        uic.exe;*.ui

注:*为你自己定义的ui文件名。

1.8.然后点击生成->生成+你的工程名,当你看到如下图所示的时候,你的目标板上的Qt程序就已经编译好了。

AT2440EVB_II+WINCE5.0板上跑QT程序

2.发布你的Qt程序到目标板上:

你的Qt程序编译完成以后,就可以发布到你的目标板上了,在工程文件夹下的STANDARDSDK_500 (ARMV4I)\Release文件夹里面找到编译好的可执行程序(EXE),拷贝到你的目标板上(SD卡上)。然后还需要拷贝程序需要的DLL文件, 必要的有以下三项:

QtCore4.dll、QtGui4.dll、msvcr90.dll三个。其中 QtCore4.dll、QtGui4.dll两个DLL需要在编译过的Qte库中Lib文件夹下复制,而msvcr90.dll需要在VS安装目录下的 VC\ce\dll\armv4i文件夹下复制。这3个dll是必须的,如果你的工程还需要其他DLL,请一同复制到目标板(SD卡)上。最后将你的工程 需要的其他资源文件等一同复制到目标板上。

然后在目标板上就可以顺利运行你的Qt程序了。截个图:

AT2440EVB_II+WINCE5.0板上跑QT程序

结束语

这篇文章由笔者参考了网上多篇资料以及多个论坛问题回答,最终实践之后所得,属原创作品。如有错误之处敬请指正。

另在此感谢所有帮助过我的人!