以前开发软件一直使用Borland C++ Builder系列的开发工具,但用久了,觉得写出来的程序界面太一般了(有很大的原因是研究不深?!)。另外,基于编写多平台(主要是Linux和Unix)软件的需求,需要另外找一套支持多平台界面开发包。在GOOGLE上找了几日,瞄上了Qt.
下面要记录的是学习、使用Qt的过程,和其中发生的故事,走过的弯路,等等......
2005-08-30: Qt的安装
1. 下载
提示:需要下载Qt和相关的编译器,我用的是mingw,如果用vc,可以不需要这个。
Qt软件的下载就不说了,在http://www.trolltech.com/网站上应该可以找到。我这里下载的是qt-win-opensource-4.0.1-mingw.exe这个包(35.4M),下载完后直接执行安装,在安装过程中提示需要mingw(GNU开发工具移植到Win32 平台下的产物),又到http://www.mingw.org/上下载来MinGW-3.4.2.exe。
2. 安装
首先安装上mingw,然后再次安装Qt的时候,安装过程中指定mingw的目录即可安装完成。安装过程略. :-)
Qt安装完后,在bin目录下有一个qtdemo.exe,运行这个文件可以显示所有Qt安装包内附带的demo和Example,通过这个可以快速浏览一下利用Qt的开发包设计出来的Windows程序。
开起来是安装完成了,但接下来的问题就出来了...
3.试运行
执行bin目录下的assistant程序,打开Qt的随机文档,进入Qt Reference Documentation->Tutorial & Examples->Qt Tutorial 1 - Hello World!,开始来执行第一个Qt程序。
首先,将examples\tutorial\t1目录下的main.cpp复制到一个新的目录下,然后从开始菜单中选择"程序"->“Qt by Trolltech v4.0.1 (OpenSource)”->“Qt 4.0.1 Command Prompt”进入到命令行窗口(注:也可以利用cmd来进入到命令行窗口,但通过这个程序进入,会设置好一些环境变量,更加方便。),cd到刚才保存main.cpp的新目录,按照教程中所说的,执行以下两个命令:
qmake -project (这个命令用于产生.pro文件)
qmake (这个命令用于产生Makefile文件)
然后,教程中写了执行make指令,但问题出来了,一串错误信息,说的是“-lqtmaind”这个选项有错误,缺少一个qtmaind的库文件。(由于从来没有用过gcc的命令行编译器,一开始对这个错误消息也不理解,为了找这个原因还颇费周折。)这下傻眼了,怎么会缺少库文件?到Qt的lib目录下找,确实没有这个libqtmaind.a文件。怎么会这样?
回头在去看一下,安装文档(在Qt\4.0.1下有个INSTALL文件),发现问题了,上面说了,在解压缩完成后,还有第三步Building,刚才这步没有做。然后按照这个说明继续执行第三步Building。(看来做任何事情都先看看说明,弄清楚怎么做还是很有必要的,可以少走弯路。)cd到Qt\4.0.1目录下,分别执行以下命令:
configure
mingw32-make
............
注意:这步执行的是,根据环境产生qmake程序,然后在rebuild所有的Qt源文件,demo,examples,tools,plugins,时间非常长,要有思想准备(我在Pm 1.6G, 512M内存的笔记本上跑了两个多小时,在另一台双CPU-Amd64, 16G内存,64位XP的小型工作站上执行了将近70分钟)。而且执行前要注意,关闭所有Qt用到的程序,包括demo,example,assistant等等。因为在rebuild过程中,会重新生成并覆盖这些exe,dll等文件,如果这些文件正在使用,就会产生错误,整个rebuild过程会全部中止。又要重新开始,我在这里就中断了两次(当然后面一次,我修改了Qt自动产生的Makefile文件,去掉了已经完成的部分,然后继续build剩余的代码)。
在rebuild过程中,到Qt的lib目录下会看到,会产生一些lib*.a,*.dll的库文件,刚才所缺少的libqtmaind.a也在其中。
执行完成后,在回头去继续教程中的最后一步make,没有任何错误,最终生成了第一个用Qt写的程序。
OK, 第一天的报告就这些,以后再续。