Welcome to ErranLi's Blog!

  C++博客 :: 首页 :: 联系 :: 聚合  :: 管理
  106 Posts :: 1 Stories :: 97 Comments :: 0 Trackbacks

常用链接

留言簿(12)

搜索

  •  

积分与排名

  • 积分 - 173255
  • 排名 - 150

最新评论

阅读排行榜

Qt-WinCE安装、开发及部署全解

penguinx   发表于: 2008-07-31

管理提醒:
本帖被 XChinux 从 Qt for Embedded Linux 移动到本区(2010-02-07)
Qt-WinCE 全解
声明: 花费了三天时间,周转各大网站,终于在今天将自己的第一个 Qt 程序在“小 I(SAMSUNG i718+) ”上跑了起来!



一、 Qt 嵌入式环境的搭建
a)        首先,下载 Qt 的嵌入式开发包 qt-embedded-wince-opensource-src-4.4.0.zip

b)        然后,下载 VS2005

c)        最后,下载一个嵌入式开发的 SDK ,如 Windows Mobile 5.0 Pocket PC SDK, 可以在微软的官方网站上下载到!

d)        还有一个是同步的软件 Microsoft ActiveSync4.5 中文简体版。

------------------------------------------ ---- ----------------------------------
e)        首先安装 VS2005 ,很简单,按照向导来,在自定义安装中务必选择“智能设备开发”。

f)          关于 Microsoft ActiveSync4.5 的安装更是“ straightforward ”。在此不再多说!

g)        然后,安装 Windows Mobile 或是其它版本的 SDK ,可以用自定义的 SDK! 简单

h)        比较麻烦的就是 qt-embedded-wince 的安装。参照下面的步骤:①、解压,将解压后的文件夹放到一个不含空格的路径中,如我的: f:\penguinx\qt_wince qt_wince 即为此文件夹。然后设置环境变量:右键“我的电脑”- > “属性”- > 点“高级”标签- > “环境变量”选项- > "PATH" 中添加路径“ f:\penguinx\qt_wince \ bin ”。 OK !②编译前戏。首先,配置编译选项,进行 VS2005 的命令行中,进入解压的文件夹,然后执行如下: configure -platform win32-msvc2005 -xplatform wince50standard-armv4i-msvc2005 可以根据自己的板子及手机配置来选择其它的嵌入式的 xplatfrom 。这个过程可能需要十几分钟。执行完后,再次在 VS2005 中设置临时的环境变量,编译时要用到:如下:

      set INCLUDE=D:\Program Files\Microsoft Visual Studio 8\VC\ce\include;D:\Program Files\Windows CE Tools\wce500\Windows Mobile 5.0 Pocket PC SDK\Include\Armv4i



      set LIB=D:\Program Files\Microsoft Visual Studio 8\VC\ce\lib\armv4i;D:\Program Files\Windows CE Tools\wce500\Windows Mobile 5.0 Pocket PC SDK\Lib\ARMV4I



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

              在此我期望能根据自己的软件安装情况将上面的目录“拿来主义”一下。设 置完后,执行 nmake ,过两、三个钟头后,你就可以 Enjoy your journey.
最后,执行nmake,安装完毕!我的Qt-WinCE安装在  f:\penguinx\qt_wince



二、编译Qt-WinCE程序
命令行法 ( 不用 IDE)

首先、用 VS2005 命令行进入要编译的程序目录 ( 此目录最好就在安装目录 f:\penguinx\qt_wince ) ,执行 < f:\penguinx\qt_wince >bin\qmake.exe –project –o example.pro  其中, Install Qt Path 为你的 Qt-WinCE 的安装目录。这个时候,可以产生 example.pro 文件。

然后、就是产生 Makefile 的时候:在 VS2005 命令行下输入:

f:\penguinx\qt_wince\bin\qmake -spec ..\mkspecs\wince50standard-armv4i-msvc2005 -win32 -o Makefile example.pro 此时,恭喜你, Makefile 文件已经产生。

      最后,就是用 nmake 来编译和链接程序了。先将安装时的环境变量 ( 三个 set) 在当前 VS2005 命令行下重新执行一遍。否则会出现如下错误:

cl: 命令行 warning D9002 : 忽略未知选项“ -QRarch4T

cl: 命令行 warning D9002 : 忽略未知选项“ -QRinterwork-return

main.cpp

mainwindow.cpp

f:\penguinx\qt_wince\include\qtgui\../../src/gui/widgets/qmenu.h(144) : error C2

146: 语法错误 : 缺少“ ; ( 在标识符“ wceMenu ”的前面 )

f:\penguinx\qt_wince\include\qtgui\../../src/gui/widgets/qmenu.h(144) : error C4

430: 缺少类型说明符 - 假定为 int 。注意 : C++ 不支持默认 int

f:\penguinx\qt_wince\include\qtgui\../../src/gui/widgets/qmenu.h(144) : error C4

430: 缺少类型说明符 - 假定为 int 。注意 : C++ 不支持默认 int

f:\penguinx\qt_wince\include\qtgui\../../src/gui/widgets/qmenu.h(144) : warning

C4183: wceMenu : 缺少返回类型;假定为返回“ int ”的成员函数。

然后,执行 nmake ,看着一行的白银流失完后,就是金子 ( 你的 exe 文件 ) 了。

注意:在执行 nmake 的时候,可能会看到如下错误信息:

        link /LIBPATH:"f:\penguinx\qt_wince\lib" /LIBPATH:"f:\penguinx\qt_wince\

lib" /NOLOGO /NODEFAULTLIB:OLDNAMES.LIB /DEBUG /SUBSYSTEM:WINDOWSCE,5.00 /MACHIN

E:THUMB /OUT:debug\node.exe @C:\DOCUME~1\User\LOCALS~1\Temp\nm6B3.tmp

tmp\obj\debug_shared\main.obj : fatal error LNK1112: 模块计算机类型“ X 86 与目标

计算机类型“ THUMB ”冲突

NMAKE : fatal error U1077: “"D:\Program Files\Microsoft Visual Studio 8\VC\ce\b

in\x86_arm\link.EXE" : 返回代码“ 0x 458

      这种错误搞的我很无奈,我不执行 nmake ,直接执行 nmake release 就没有这种错误?这种错误可能是因为“环境变量”中“ PATH ”中设置了“ f:\penguinx\qt_wince\bin ”。在我把这个变量去掉后,重新打开 VS2005 命令行 ( 因为得重新读取 PATH 变量 ) 。然后按照上面的步骤做下来,最后用 nmake 重新执行一遍,很好很流畅!

三、 Qt –WinCE 程序的部署(非打包)
      可以直接把上面开发的 *.exe 文件和其需要的 *.dll 一起 CP 到一个目录中,这些 dll 一般有:

D:\Program Files\Microsoft Visual Studio 8\VC\ce\Dll\armv4i\ msvcr80.dll

F:\penguinx\wince_vs2005\lib\ QtCore4.dll

F:\penguinx\wince_vs2005\lib\QtGui4.dll

其它的根据自己项目的需要 CP 下,就行了。

      如果想将程序部署成 *.cab 形式的,在上面的“解决方案”中,点“文件”- > “新建”- > “项目”- > 点“其它”,其中有关于智能设备部署的,就它了 ( 我在实验室机子上开发的,回来写手记,所以具体的操作记的不是非常清楚,将就! ) 。根据向导建立后,在新建的 cab 项目中点“属性”,最后,生成就行了。 CP 到板子就可以运行了。

注意:所有的 CP 都是用 ActiveSync 软件通过 USB 传输的,当然可以用其它传输手段,最终能上板子就行。

-Zm200 -w34100 -w34189 -Zm200 -w34100 -w34189 -w34100 -w34189

注意在 WinCE 部署时的版本,如果设备上的 WinCE 版本比开发用的版本低的话,将显示“ ****, 需要更新的 Windows 版本”云云。

/SUBSYSTEM:WINDOWSCE,5.00 /MACHINE:THUMB

/SUBSYSTEM:WINDOWSCE,5.00 /MACHINE:THUMB



posted on 2010-06-18 10:16 erran 阅读(1001) 评论(0)  编辑 收藏 引用 所属分类: QT

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理