Qt For Wince平台的搭建【vs2008 】

来源:互联网 发布:js二维数组定义 编辑:程序博客网 时间:2024/05/15 07:18

首先得感谢0XFAN,帮我解决了不少麻烦,还有小A,以及Google~~~

 

我需要搭建的平台是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的设备管理器没有关联上,都是独立运行的那种,包括微软提供的那个wince50模拟器【发现还是一个for x86的】。后来有幸装了一个wince6.0的,带了模拟器和sdk【感谢网友分享】,将就使用wince6.0的模拟器吧 -- 不知道会发生什么问题,凑合着用【希望大家在这方面可以提供些帮助,小弟不才】。

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

 

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

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

     3   ,配置平台信息

   cdD:/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.要是想偷点懒的话,先cdbin目录,你可以先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的。

怎么回事呢?

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

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

我们可以在mkspecs/wince50standard-armv4i-msvc2005qmake.conf2008使用的2005的配置文件】中看到,

CE_SDK      = STANDARDSDK_500

将其改为CE_SDK      = EM9161

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

 

 

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

 

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

 

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

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

 

欢迎大家过来拍砖。并提供好的方法哦~~~~