Qt For Wince平台的搭建方法总结以及vs中调试问题

董小尾 2010-06-15 06:29:11


原文地址http://blog.csdn.net/QustDong/archive/2010/06/15/5672678.aspx



我需要搭建的平台是vs2008+qt for wince +wince5.o【目标板子是EM9161,这个是后来才确定的】

当然顺便也使用qt creator用于wince的开发。



原有平台vs2008+qt4.6.2 以及qtcreator



在开发环境搭建之前,还没有接触过wince,花了很多时间研究wince,不过还是浅尝辄止。为了偷懒,我想使用现成的wince sdk.【主要是我还不会定制sdk】,从微软下了STANDARD_SDK,发现没有模拟器--!,悲剧了,后来去网上找了很多wince5.0的模拟器。安装以后,vs的设备管理器没有关联上,都是独立运行的那种,包括微软提供的那个wince5。0模拟器【发现还是一个for x86的】。后来有幸装了一个wince6.0的,带了模拟器和sdk【感谢网友分享】,将就使用wince6.0的模拟器吧 --! 不知道会发生什么问题,凑合着用【希望大家在这方面可以提供些帮助,小弟不才】。

最后确定的目标板子是英创的EM9161,在其网站上找到了相应的wince5.0的sdk.装上后,同样没有模拟器。悲剧~~~



1,先下载qt-for-wince-opensource-src-4.6.2.zip,解压到一个没有空格的目录,我放在了D盘。

2,.然后打开VS2008下的命令行窗口,工具->Visual Studio 2008命令提示符 ,好吧很输入的黑色窗口出现了。为了保险起见,先执行vsvarsall.bat设置初始化环境,这个会自动调用vars32.bat.


3 ,配置平台信息

cd到D:\wince【安装时解压目录】

configure -platform win32-msvc2008 -xplatform wince50standard-armv4i-msvc2008 【根据你的平台而定。 注意啦:这里留到后面说。】可以去mkspecs文件中查找对应的平台








4,这个是最关键的一部,方法比较多,我就在这里被搞晕了。

1.你可以这么做。手动设置你的编译环境。比如我的设置是,

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

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

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



2.要是想偷点懒的话,先cd到bin目录,你可以先checksdk.exe –list 查看你现有的sdk



然后checksdk.exe -sdk "EM9161 (ARMV4I)" –script tmp.bat生成tmp.bat文件



运行tmp.bat配置环境。





3.最简单的做法只要一句话,setcepaths wince50standard-armv4i-msvc2008

如果是针对微软的标准sdk的话,这个批处理可以不做修改。如果不是的话,那么还需要小小的修改。 将standardsdk_500



) ELSE IF "%1" EQU "wince50standard-armv4i-msvc2008" (

checksdk.exe -sdk "EM9161 (ARMV4I)" -script tmp_created_script_setup.bat 1>NUL

只要把原来的sdk改成我目标板子(em9161)上的即可。要是不明确有哪些sdk,请看4.2



5,执行nmake,进行编译。 现在要做的事就是等一两个小时了。



要是觉得编译出来后文件才占空间,可以执行" nmake confclean ",这样清理完成之后,整个qt解压目录大小约为800M左右。【这个还不理解其原理,有说是将编译过程中的信息删除】







好吧,现在可以测试一下我们搭建的平台了。



当然得先在vs->qt->qt options->设置我们新的qt版本。



然后新建qt wince应用程序。


不对呀?






qt读出来的wince平台竟然是STANDARDSDK_500的。

怎么回事呢?


刚才我们不是针对em9161的sdk进行编译的qt库的吗?问题就在我们配置的问题。

Qt带的默认配置是对标准sdk的。


我们可以在mkspecs\wince50standard-armv4i-msvc2005的qmake.conf【2008使用的2005的配置文件】中看到,

CE_SDK = STANDARDSDK_500

将其改为CE_SDK = EM9161


重启vs以后,新建qtwince项目就可以看到我们的目标平台了,一旦改成没有的sdk,则会提示没有发现wince的平台。也就是vs是通过这个配置文件来关联wincesdk的。不知道有没有理解错。






赶紧完成第一个测试,编译通过。只是没有办法直接部署到模拟器中。虽然已经通过activesync同步了wince6.0的模拟器。但是不能像开发vc++智能设备以后,可以直接在模拟器中运行。提示是:系统找不到指定的文件。强烈求助






现在只能手工将编译好的程序以及相应的dll放到模拟器中,可以正常运行。






在qtcreator中先用qt4.6.2进行调试,然后再用刚才编译好的wince库,进行编译,就可以到模拟器中跑来


【板子上到还是没有实际测试过】



欢迎大家过来拍砖。并提供更好的方法哦~~~~
谢谢了,才开始接触这块~~很多都不懂!!!


...全文
970 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
董小尾 2010-07-18
  • 打赏
  • 举报
回复
这个问题现在还不是很清楚
比如我的一个板子是em9100,一个是em9260的

是不是得分别针对相 对应得sdk,再重新编译一次呢?


[Quote=引用 8 楼 qustdong 的回复:]
另外,我要是需要的目标板子是EM9100的话,应该怎么做,才能让两个共存呢?

求高人相助~~~
[/Quote]
董小尾 2010-07-18
  • 打赏
  • 举报
回复
这个问题已经成功解决
方法详见:http://topic.csdn.net/u/20100718/13/d37cc1ef-731d-4e9e-994e-1294c61707b0.html?95090

[Quote=引用 5 楼 qustdong 的回复:]
系统找不到指定的文件。强烈求助
[/Quote]
董小尾 2010-06-18
  • 打赏
  • 举报
回复
另外,我要是需要的目标板子是EM9100的话,应该怎么做,才能让两个共存呢?

求高人相助~~~
乱世狂刀 2010-06-18
  • 打赏
  • 举报
回复
这么复杂嘛......
qter_wd007 2010-06-16
  • 打赏
  • 举报
回复
有时间我也试试,最近也有这样的需求。可惜总是找不出时间来。
董小尾 2010-06-16
  • 打赏
  • 举报
回复
系统找不到指定的文件。强烈求助
董小尾 2010-06-16
  • 打赏
  • 举报
回复
现在问题是 模拟器还存在问题。


一直不知道这个该怎么解决!!!


高手们是怎么做的呢?
tiger777 2010-06-15
  • 打赏
  • 举报
回复
学习下
楼主总结对我们新人很有帮助
qter_wd007 2010-06-15
  • 打赏
  • 举报
回复
写的不错。建议斑竹设精。

排版我也遇到不少问题,当篇幅比较长时,非常难以排版。
董小尾 2010-06-15
  • 打赏
  • 举报
回复
排版实在是个让我头疼的问题~~~
现在ARM行业如火如荼,使用linux作为操作系统的也较多,本文只针对ARM和linux平台下的QT移植和程序测试做一翻详解,对于 wince等系统不涉及。 ARM开发的话必须具备以下硬件或平台条件: 1. ARM硬件开发板,现在处理器用的多是ARM9或者ARM11 2. 针对嵌入式行业的Linux系统内核,以及PC机上的Linux系统开发环境,比如Ubuntu,Redhat,CentOs等 3. ARM软件开发环境,这个比较复杂多样。ARM开发无非是底层驱动移植和开发,以及顶层的应用程序开发,还有相对应的各种调试。不管是开发还是调试,都要用到相对应的工具或软件。驱动开发的领域本文不涉及,而顶层应用程序开发的一个重要环节就是面向客户的图形界面开发,而图形界面开发嵌入式领域用的比较多的是QTQt是诺基亚开发的一个跨平台的C++图形用户界面应用程序框架。它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。Qt是完全面向对象的,很容易扩展,并且允许真正地组件编程。 4. 应用程序在pc机上开发,完成后希望在ARM板上调试,以确认程序的正确性和完整性等,这时应该如何办呢? 这里面涉及的知识比较多,有:开发板引导启动文件Uboot;Linux内核镜像的烧写;交叉编译;搭建QT开发环境;开发板与PC机Linux系统的NFS挂载连接;再就是QT程序在线测试等。 上述交叉编译之前的所有操作本文不涉及,读者如有不明之处请另找资料,本文意在构建一个QT开发环境,和使用开发板通过NFS挂载后的QT应用程序测试环境。

16,235

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧