qmake使用手册 联系客服

发布时间 : 星期三 文章qmake使用手册更新完毕开始阅读

qmake的介绍

qmake是Trolltech公司创建的用来为不同的平台和编译器书写Makefile的工具。

手写Makefile是比较困难并且容易出错的,尤其是需要给不同的平台和编译器组合写几个Makefile。使用qmake,开发者创建一个简单的“项目”文件并且运行qmake生成适当的Makefile。qmake会注意所有的编译器和平台的依赖性,可以把开发者解放出来只关心他们的代码。Trolltech公司使用qmake作为Qt库和Qt所提供的工具的主要连编工具。 qmake也注意了Qt的特殊需求,可以自动的包含moc和uic的连编规则。

安装qmake

当Qt被连编的时候,默认情况下qmake也会被连编。

这一部分解释如何手工连编qmake。如果你已经有了qmake,可以跳过这里,请看10分钟学会使用qmake。 手动安装qmake

在手工连编Qt之前,下面这些环境变量必须被设置:

?

QMAKESPEC

这个必须设置为你所使用的系统的平台和编译器的组合。

举例来说,加入你使用的是Windows和Microsoft Visual Studio,你应该把环境变量设置为win32-msvc。如果你使用的是Solaris和g++,你应该把环境变量设置为solaris-g++。

当你在设置QMAKESPEC时,可以从下面的可能的环境变量列表中进行选择:

aix-64 hpux-cc irix-032 netbsd-g++ solaris-cc unixware7-g++

aix-g++ hpux-g++ linux-cxx openbsd-g++ solaris-g++ win32-borland aix-xlc hpux-n64 linux-g++ openunix-cc sunos-g++ win32-g++ bsdi-g++ hpux-o64 linux-icc qnx-g++ tru64-cxx win32-msvc dgux-g++ hurd-g++ linux-kcc reliant-64 tru64-g++ win32-watc

freebsd-g++ irix-64 macx-pbuilder reliant-cds ultrix-g++ win32-visa hpux-acc irix-g++ macx-g++ sco-g++ unixware-g hpux-acc irix-n32 solaris-64 unixware7-cc

envvar是下面之一时,环境变量应该被设置到qws/envvar: linux-arm-g++ linux-generic-g++ linux-mips-g++ linux-x86-g++ linux-freebsd-g++ linux-ipaq-g++ linux-solaris-g++ qnx-rtp-g++

?

QTDIR

这个必须设置到Qt被(或者将被)安装到的地方。比如,c:\\qt和/local/qt。

一旦环境变量被设置到qmake目录,$QTDIR/qmake,比如C:\\qt\\qmake,现在根据你的编译器运行make或者nmake。 当编译完成时,qmake已经可以使用了。

创建一个项目文件

qmake使用储存在项目(.pro)文件中的信息来决定Makefile文件中该生成什么。

一个基本的项目文件包含关于应用程序的信息,比如,编译应用程序需要哪些文件,并且使用哪些配置设置。 这里是一个简单的示例项目文件:

SOURCES = hello.cpp HEADERS = hello.h

CONFIG += qt warn_on release

我们将会提供一行一行的简要解释,具体细节将会在手册的后面的部分解释。

SOURCES = hello.cpp

这一行指定了实现应用程序的源程序文件。在这个例子中,恰好只有一个文件,hello.cpp。大部分应用程序需要多个文件,这种情况下可以把文件列在一行中,以空格分隔,就像这样:

SOURCES = hello.cpp main.cpp

另一种方式,每一个文件可以被列在一个分开的行里面,通过反斜线另起一行,就像这样:

SOURCES = hello.cpp \\ main.cpp

一个更冗长的方法是单独地列出每一个文件,就像这样:

SOURCES += hello.cpp SOURCES += main.cpp

这种方法中使用“+=”比“=”更安全,因为它只是向已有的列表中添加新的文件,而不是替换整个列表。

HEADERS这一行中通常用来指定为这个应用程序创建的头文件,举例来说:

HEADERS += hello.h

列出源文件的任何一个方法对头文件也都适用。

CONFIG这一行是用来告诉qmake关于应用程序的配置信息。

CONFIG += qt warn_on release

在这里使用“+=”,是因为我们添加我们的配置选项到任何一个已经存在中。这样做比使用“=”那样替换已经指定的所有选项是更安全的。 CONFIG一行中的qt部分告诉qmake这个应用程序是使用Qt来连编的。这也就是说qmake在连接和为编译添加所需的包含路径的时候会考虑到Qt库的。

CONFIG一行中的warn_on部分告诉qmake要把编译器设置为输出警告信息的。

CONFIG一行中的release部分告诉qmake应用程序必须被连编为一个发布的应用程序。在开发过程中,程序员也可以使用debug来替换release,稍后会讨论这里的。