QT 中qmake 的使用

qmake的介绍

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

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

qmake也注意了Qt的特殊需求,可以自动的包含mocuic的连编规则。

 

安装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已经可以使用了。

 

注意:一般QT的开发环境安装好了后, qmake就已经可以使用了。

 

10分钟学会使用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,稍后会讨论这里的。

项目文件就是纯文本(比如,可以使用像记事本、vim和xemacs这些编辑器)并且必须存为“.pro”扩展名。应用程序的执行文件的名称必须和项目文件的名称一样,但是扩展名是跟着平台而改变的。举例来说,一个叫做“hello.pro”的项目文件将会在Windows下生成“hello.exe”,而在Unix下生成“hello”。

生成Makefile

当你已经创建好你的项目文件,生成Makefile就很容易了,你所要做的就是先到你所生成的项目文件那里然后输入:

Makefile可以像这样由“.pro”文件生成:

    qmake -o Makefile hello.pro 

对于Visual Studio的用户,qmake也可以生成“.dsp”文件,例如:

    qmake -t vcapp -o hello.dsp hello.pro
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值