设为首页 加入收藏

TOP

2.2 Qt库的编译
2013-10-07 15:19:01 来源: 作者: 【 】 浏览:63
Tags:2.2 编译

2.2  Qt库的编译

开发工具的选择。虽然目前支持Qt开发的工具较多,比如跨平台的Qt Creator、QDevelop、Eclipse等,但是在Windows平台上,经过笔者的评测,微软的Visual Studio仍然是最优选择。为了支持开发者使用Visual Studio开发Qt应用程序,Qt提供了一个插件"Visual Studio Add-in"。安装、执行该插件后,开发者在Visual Studio中能方便地创建Qt应用程序的项目文件(扩展名为".vcproj"),也能把Qt项目文件(扩展名为".pro")转换为Visual Studio的项目文件。Visual Studio有多个版本,本书采用了中文版Visual Studio 2010(以下简称为VS 2010)。

Qt版本的选择。Qt总被不断地更新。本书采用的是2012年4月11日发布的"Qt SDK Version 1.2.1"。该软件包不但包含了Qt库4.8.1,还包括了其他开发工具,比如Qt Creator等。Qt的官方网站qt.nokia.com/downloads 提供了该软件包的两种安装方式:(1)用户下载一个字节数较少的"安装程序",用户运行该安装程序,选择所要安装的子模块,该程序再从Nokia服务器下载所选择的子模块并将它们安装到用户的本地机器中。(2)用户下载一个包含有所有子模块的安装程序,用户在本地机器中运行该程序,选择所要的子模块,完成后续的安装操作。本书采用了第二种方式,所要下载的安装程序"qtsdk-offline-win-x86-v1_ 2_1.exe"接近1.8G字节。

Qt开发环境的配置。老版本的Qt没有直接提供在Visual Studio环境下编程(www.cppentry.com)所需要的库文件,需要用户使用Visual Studio重新编译Qt的源代码以生成所需要的库文件。这个过程不但费时,而且可能出错。而Qt SDK Version 1.2.1直接提供了该库文件,简化了安装过程。我们可以按照以下步骤配置Qt的开发环境。

安装VS 2010,比如到默认的C:\Program Files\Microsoft Visual Studio 9.0目录下。

获取并安装Qt软件包。截止到2011年2月22日,Windows平台上最新版的Qt软件包为2010年5月发布的qt-sdk-win-opensource-2010.05.exe,其中Qt库的版本为4.7.1。读者可以从Qt的官方网站下载该软件包。该软件包运行时需要用户输入目标路径。本书设该路径为d:\qt\4.7.1。

安装完毕后,Qt 4.7.1的库文件存放在D:\qt\4.7.1\lib目录下,头文件存放在D:\qt\4.7.1\include目录下,可执行程序(比如Qt Assistant)以及动态链接库(扩展名为DLL)存放在D:\qt\4.7.1\bin目录下。Qt 4.7.1的库文件可以供VS 2010的C++(www.cppentry.com)程序直接使用,没有必要像老版本那样需要使用VS 2010的编译器对Qt的源代码重新进行编译。因此,进行到这个步骤,我们可以直接在VS 2010中编写Qt应用程序了。当然,为了能够更方便地在VS 2010中开发Qt应用程序,我们也可以使用2.3节介绍的工具Qt Visual Studio Add-in。

由于Qt 4.7.1软件包已经包含了VS 2010编译生成的库文件,一般情况下我们不需要重新编译Qt源代码。然而,在某些场合下我们需要重新编译Qt库。例如本书8.3节在讨论Qt应用程序的二进制代码兼容问题时就需要重新编译Qt库。这是一项耗时的工作,具体的步骤如下。

复制Qt软件包。本书8.3节会本着试验的目的修改Qt的源代码。完成试验后我们应该复原Qt的源代码。Qt 4.7.1的所有文件都存放在目录d:\qt\4.7.1下。为了能够精确复原Qt的源代码,我们令该目录为原始目录,不会对其进行任何修改。做实验时,该目录下的内容会被复制到一个工作目录,本书设为D:\qt\vc,其中的内容可以被修改。当我们想复原Qt源代码时,只需要将原始目录中的文件复制到工作目录即可。由于原始目录中含有大约3.6万个文件,这个复制操作需要运行一段时间。我们可以使用Windows的资源管理器来完成这个复制操作,也可以使用命令

  1. xcopy d:\qt\4.7.1d:\qt\vc/s 

的方式来完成,这种方式可以显示复制的过程。

配置适用于VS 2010的环境变量。对Qt软件包进行编译时,需要以命令行方式使用VS 2010的编译器,这需要配置一些环境变量。用一个文本编辑软件打开文件C:\Program Files\Microsoft Visual Studio 9.0\Common7\Tools\vsvars32.bat,使环境变量PATH包含d:\qt\vc、INCLUDE包含d:\qt\vc\include、LIB包含d:\qt\vc\lib。保存该批处理文件后,在命令行窗口运行该批处理文件。随书光盘Z:\misc\vsvars32.bat是一个修改后的文件,读者可以参考该文件进行修改。读者也可以直接运行该文件,跳过以上编辑过程。为了验证是否对上述环境变量做了正确的设置,可以在命令行窗口运行set命令,并检查屏幕的输出。

生成供VS 2010编译器使用的配置文件。在命令行窗口中,将当前目录切换到d:\qt\vc,运行:

  1. configure-platform win32-msvc2008  

命令将生成一个配置文件,供步骤6中的编译程序nmake使用。Qt库由corelib,GUI,network等多个模块组成,上述命令表示即将编译所有模块。如果开发者只需要使用部分模块,可以使用下面的命令略过其他模块的编译,以节省编译时间:
  1. configure -no-sql-sqlite -no-qt3support -platform win32-msvc2008 -no-libtiff   
  2. -no-dbus -no-phonon -no-phonon-backend -no-webkit 

该命令表示不编译sql-sqlite、qt3support、libtiff、dbus、phonon、phonon-backend及webkit模块。configure命令运行时会询问Qt的版本是商业版还是免费开源版,选择免费开源版。该命令大约运行10分钟。

运行nmake进行编译。在命令行窗口中,将当前目录切换到d:\qt\vc,运行命令nmake,对Qt的源代码进行编译。该命令运行2~3个小时。为了验证Qt库是否已经被正确编译,用户可以查看目录D:\qt\vc\lib。如果该目录包含qtcore4.lib、qtgui4.lib等库文件,而且这些库文件的更新时间正好为运行nmake命令的时间,则表示Qt库已被成功编译。编译完毕后d:\qt\vc目录占用了大约10GB的空间,其中大部分是.obj文件。用户可以在该目录下运行命令"del *.obj /s"删除这些文件,以节省磁盘空间。缩减后的目录大约占用2.6GB空间。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇2.5 Qt风格的编程规范 下一篇2.3 开发环境的设置

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: