

因为Trolltech公司没有为其产品QT提供编译器和集成开发环境,所以在使用QT开发软件的时候其开发工具的选择也存在疑惑,笔者经过多次的实践得出一些经验,让后来者不用太多的探索。
使用QT来开发Windows Mobile软件更麻烦,也一直没有找到一些好的办法来解决,不过最终还是有点成果,至少比起刚开始接触的时候有了点认识。现总结如下。
首先,使用QT来开发Windows Mobile程序,不如开发Windows程序那样方便,隔着一层模拟器总让人有束缚感。于是笔者就首先开发在Windows上运行的程序,如果在Windows上运行,并且达到了一些效果,再编译成Windows Mobile的程序,观察效果是不是也达到了。因为QT强大的跨平台性,所以,当为Windows Mobile编译程序的时候,只是一个make过程,且不会花很长时间。所以Windows Mobile程序被转变成了Windows程序,其开发难度和周期也相对减少了(隔着模拟器等程序运行是个漫长的过程)。
在Windows上,虽然可以使用命令行的方式编译并调试QT程序,但当项目规模扩大以后其代价将相当高,于是将QT嫁接到一个集成开发环境中就成了理所当然的事情了。在这里选择目前很受欢迎的eclipse。而要编译成Windows Mobile上运行的程序时,还要用到Visual Studio.NET。当然也可以只安装一个SDK而不用完全安装Visual Studio.NET。毕竟它仅是用来编译一下在eclipse上调试好的程序,让其输出一个在Windows Mobile上运行的程序。
这个环境大概会用到的工具如下,
eclipse方面(开发运行在Windows上的程序):
JDK
MinGW
eclipse
qt-win-opensource-4.4.3-mingw
qt-eclipse-integration-win32-1.4.3
Visual Studio.NET方面(开发运行在Windows Mobile上的程序):
Visual Studio 2008(仅会用到其部分功能,所以不用完全安装)
Microsoft ActiveSync 4.5
Windows Mobile 6 professional SDK
qt-embedded-wince-opensource-src-4.4.3
由于得安装两个不同的QT在同一个电脑上,并且它们还都得使用到PATH环境变量,如果这里不设置好的话,在开发过程中也会不停的设置环境变量,其工作也比较烦。接下来会讲到如何不用设置这一切,而让开发工作不用太烦。
首先安装JDK,因为eclipse需要JDK。
接着安装MinGW,在这里MinGW的目录可以不放入PATH环境变量中,接下来将会看到它是怎样被eclipse发现的。但是如果还有用得着MinGW的地方,将其放到环境变量中也不会出错。
再安装eclipse,这个没什么讲的,解压就行。
再安装QT的MinGW版,其中会要求指定MinGW的安装目录,这里QT知道了MinGW安装在哪。
最后安装QT与eclipse集成的工具,安装过程会询问MinGW和eclipse的安装目录,于是以后用QT的这个工具启动eclipse的时候它就会知道MinGW被安装在哪。
好,现在来理一下这个顺序,其实为什么需要这些步骤呢?因为MinGW和eclipse这两个工具都不需要安装,直接解压就行了,而这些工具都是分开的,所以它们不可能在每次启动的时候都来扫一次硬盘,找一下所需的工具被解压到哪了。这样虽然有点麻烦,但如果看清楚了它们之间的关系,一点都不麻烦,不安装的软件有个好处是不依赖于环境,如MinGW一样,解压就能用,如果像Visual Studio.NET这样的工具出了问题怎么办呢?由于其内在的缺陷,一些环境配置的问题很难得出答案。而MinGW这种软件比较方便,当找不到gcc命令的时候我们会想到它的路径是否在PATH中呢?查一下就可以得知了。而这里MinGW唯一跟外界联系的也只有PATH环境变量了。
现在要做的只是使用QT的集成工具把eclipse、MinGW和QT集合起来,它们之间的关系也只是这样,首先运行eclipse要JDK的支持,所以先安装JDK,而这三个工具安装完以后,如果不用到环境变量,它们是不能联系在一起的。eclipse的集成开发环境,它没有编译器不能工具,MinGW是编译器,它为eclipse工作。而QT是一个库。用MinGW提供的编译外链接工具可以将其链接起来。
在这里,QT的集成工具是如何把它们联系起来的呢?看一下它的代码就知道了。