目标:

 

        环境搭建的目标是编译出 自己定制的WINCE6.0(ARMV4)SDK的QT库(dll),并可以在模拟器中运行QT程序!

开发工具是VS2005或者VS2008!

 

前言:

 

        如果你搜索“QT WINCE” 你会得到很多的部署的文章,比如:

Installing Qt on Windows CE

QT-WINCE ARM编译过程

等等!  但由于我自己是第一次进行QT的库的编译,所以甚是陌生,导致各家的方法都试验了  就是没有成功!但在进过摸索之后也找到了自己的方法,最终编译成功了,并用VS2008成功建立demo工程,并可以再Emulator中运行!

 

方法:

 

      下载 qt-everywhere-opensource-src-4.7.3(其它版本都没有成功),解压更名,我的目录是F:\QTCE473,打开VS2005 command  prompt, 输入命令:

“ CD F:\QTCE473”进入qt目录!

 

一、configure

 

       首先就是配置了,怎么样的配置就有怎么样的nmake, 所以这个很重要 。这个过程其实就是调用F:\QTCE473下的configure.exe 程序进行配置。

输入 configure -help 就可以看到它所支持的命令:

  1. configure -help  
  2. Usage: configure [-buildkey <key>]  
  3.        [-release] [-debug] [-debug-and-release] [-shared] [-static]  
  4.        [-no-fast] [-fast] [-no-exceptions] [-exceptions]  
  5.        [-no-accessibility] [-accessibility] [-no-rtti] [-rtti]  
  6.        [-no-stl] [-stl] [-no-sql-<driver>] [-qt-sql-<driver>]  
  7.        [-plugin-sql-<driver>] [-system-sqlite] [-arch <arch>]  
  8.        [-D <define>] [-I <includepath>] [-L <librarypath>]  
  9.        [-help] [-no-dsp] [-dsp] [-no-vcproj] [-vcproj]  
  10.        [-no-qmake] [-qmake] [-dont-process] [-process]  
  11.        [-no-style-<style>] [-qt-style-<style>] [-redo]  
  12.        [-saveconfig <config>] [-loadconfig <config>]  
  13.        [-qt-zlib] [-system-zlib] [-no-gif] [-qt-gif] [-no-libpng]  
  14.        [-qt-libpng] [-system-libpng] [-no-libtiff] [-qt-libtiff]  
  15.        [-system-libtiff] [-no-libjpeg] [-qt-libjpeg] [-system-libjpeg]  
  16.        [-no-libmng] [-qt-libmng] [-system-libmng] [-no-qt3support] [-mmx]  
  17.        [-no-mmx] [-3dnow] [-no-3dnow] [-sse] [-no-sse] [-sse2] [-no-sse2]  
  18.        [-no-iwmmxt] [-iwmmxt] [-openssl] [-openssl-linked]  
  19.        [-no-openssl] [-no-dbus] [-dbus] [-dbus-linked] [-platform <spec>]  
  20.        [-qtnamespace <namespace>] [-qtlibinfix <infix>] [-no-phonon]  
  21.        [-phonon] [-no-phonon-backend] [-phonon-backend]  
  22.        [-no-multimedia] [-multimedia] [-no-audio-backend] [-audio-backend]  
  23.        [-no-script] [-script] [-no-scripttools] [-scripttools]  
  24.        [-no-webkit] [-webkit] [-webkit-debug] [-graphicssystem  
  25.        raster|opengl|openvg]  


我建议你可以把所有关于这个命令的介绍保存的txt文档中,以便随时查阅!

这些命令大体分为:

【Configure options:】

【Third Party Libraries:】
【Qt for Windows only:】

【Qt for Windows CE only:】

【Qt for Symbian OS only:】

命令介绍前的"*" ,"+"  的意义:

The defaults (*) are usually acceptable. A plus (+) denotes a default value
that needs to be evaluated. If the evaluation succeeds, the feature is
included.

如果有些组件你不想编译,那么可以利用命令去除!

我的命令式:

configure -platform win32-msvc2005 -xplatform wince60standard-armv4i-msvc2005       

然后其它采用默认的配置。

这个命令的意思应该是用PC平台的VS2005的编译器,编译目标平台为wince60standard-armv4i-msvc2005的QT库!

这里要特别注意: wince60standard-armv4i-msvc2005,

这个平台名字就是 F:\qtce473\mkspecs下的 wince60standard-armv4i-msvc2005文件夹的名字,记事本打开里面的 qmake.conf ,看到里面有:

CE_SDK  = CE6_CHS   # replace with actual SDK name
CE_ARCH  = ARMV4I

在这里必须要把CE_SDK 改为与自己的SDK的名字一致,不然不会成功的!在F:\qtce473\mkspecs目录下也可以看到其他的平台配置文件,里面的修改方法是一样的!

这个命令会持续几分钟。

二、设置路径:

 

        在configure命令过后就是要设置路径了,我很多次就是毁在这一步了,路径不对,很多的定义找不到定义点,当然会编译出错了,

而网上都是说用 SET INCULDE  \ SET LIB  \  SET PATH   这三个命令来设置, 我觉得这个方法很不好,而且很容易出错,我就是这样!

比较好的方法是利用F:\qtce473\bin 下面的批处理文件:setcepaths.bat    ,顾名思义,它是用来 set wince paths 的,和qmake.conf 文件一样,我们要保证里面的SDK名和自己安装的SDK名字一致,我修改如下:

ELSE IF "%1" EQU "wince60standard-armv4i-msvc2005" (
checksdk.exe -sdk "CE6_CHS (ARMV4I)" -script tmp_created_script_setup.bat 1>NUL
tmp_created_script_setup.bat
del tmp_created_script_setup.bat
echo CE6_CHS for arm selected, environment is set up
)

在命令行里面输入

setcepaths.bat  wince60standard-armv4i-msvc2005     [enter]

当然还得添加系统变量  PATH=F:\qtce473\bin

如果你要查询打钱PC上有哪些SDK的话,使用下面的命令:

checksdk.exe  -list

 

三、nmake

 

        在上面两步都成功的基础上,将输入  “cd ..”  退到目录  F:\qtce473下,然后输入 nmake,就可以了。

这个过程比较长,持续时间因机而定,我的持续了1个小时左右,最终我们就可以在目录F:\qtce473\lib 下看到众多DLL库了。

当然编译examples和demos目录 是比较耗时的,你可以配置,跳过这些目录,具体方法就不想试验了!可以自行查找!

 

四、使用

 

         安装qt 做的Visual Studio 的插件,我下载的是:qt-vs-addin-1.1.10

安装过后就会在菜单栏看到QT菜单,在新建工程里面也可以看到QT4相关工程(我也安装了qt-win-opensource-4.8.0-vs2008),

新建wince的工程,然后download到模拟器上,并且把QtCore4.dll 和QtGui4.dll 等需要的库copy到exe程序的当前目录,就可以运行了!