当前位置:首页 > qmake手册(初级部分)
http://www.cnsilan.com/qtqtopia/qmake-manual.html
qmake手册(初级部分)
qmake是一个帮助在不同平台上简化编译步骤的工具,她是来自Trolltech,qmake能够自动生成Makefile 使得只需要少量的信息就可以创建相应的Makefile,qmake能用于很多的软件工程,不管该软件工程是否是用qt写的.
qmake能生成Makefile主要是以工程文件里面的信息为基础.工程文件是开发者创建的,通常是很简单的.但是一些复杂的工程需要创建复杂的工程文件文件,qmake包含别的特性来支持qt开发.自动的包含uic和moc的编译规则.qmake也可以生成Microsoft Visual studio的工程文件而不要求开发者改变qt的工程文件
Getting Started 开始把
qmake指南 和 qmake 常用工程 提供了浏览,以便帮助新手开始qmake的使用 下面的就是连接了?
?
qmake Tutorial qmake指南
o Starting off Simple 从简单易懂开始
o Making an Application Debuggable 使得程序可调试
o Adding Platform-Specific Source Files 添加特殊平台的源文件
o Stopping qmake If a File Doesn't Exist 停止qmake如果文件不存在 o Checking for More than One Condition 检查更多条件 qmake Common Projects
o Building an Application 编译成可执行程序
? The app Template app模板
o Building a Library 编译成库
? The lib Template 库模板
o Building a Plugin 编译成插件
? Building a Qt Designer Plugin 编译成qt designer的插件
o Building and Installing in Debug and Release Modes 调试模式和发布
模式的编译和安装
? Building in Both Modes 两种模式同时编译 ? Installing in Both Modes 两种模式同时安装
?
qmake指南
本指南教导你怎么使用qmake,我们建议你看完了本指南后去阅读一下qmake用户手册
从简单易懂的开始
我们假设你完成了一个你的程序基本文件建立.比如下面的文件
? ? ?
hello.cpp hello.h main.cpp
你可以在你的qt的安装目录的examples/qmake/tutorial里面找到这些文件.首先使用一个你喜欢的编辑器创建一个叫hello.pro的文件,第一件你要做的事情是添加一行字 来告诉qmake 关于头文件和源文件是你的工程的组成部分
我们将先添加源文件到工程文件,你需要使用SOURCES 变量来做这件事情.新起一行写上 SOURCES += 后面跟着hello.cpp 例如 SOURCES += hello.cpp
我们重复做同样的事情 来添加源文件到工程文件里面,最后就成了下面的样子 SOURCES += hello.cpp SOURCES += main.cpp 如果你喜欢使用Makefile的语法风格,可以写成下面的形式 SOURCES = hello.cpp \\ main.cpp
现在源文件已经列在了工程文件里面了,接下来添加头文件,他们也是用同样的方法添加,不同的是变量名是HEADERS
做了这步的话,我们的工程文件应该是下面的样子了 HEADERS += hello.h SOURCES += hello.cpp SOURCES += main.cpp 一般情况下编译出来的目标的名字自动设置成跟工程文件名一样的名字,但是根据不同的系统加上了适当的后缀名,比如,你的工程文件名叫hello.pro那么目标在windows就是
hello.exe而在Unix就是hello,如果你想使用一个不同的名字,你可以在工程文件名里面加入以下设置
TARGET = helloworld
最后的一个步骤就是设置 CONFIG 变量 由于这是一个qt的程序,我们需要把qt加入到CONFIG变量里面 以便qmake能够添加相关需要链接的qt的库和确保moc和uic能包含到将要生成的Makefile里面
最后看到的完成的工程应该是下面的样子了 CONFIG += qt HEADERS += hello.h SOURCES += hello.cpp SOURCES += main.cpp 现在你可以使用 qmake来生成你的程序需要的Makefile了,在命令行里面到你的工程所在的目录 输入以下的:
qmake -o Makefile hello.pro 接着输入make还是nmake 就依赖你的编译器了,如果是vs或者vc的就输入nmake,否则就输入make
对于Visual Studio使用者qmake 还可以生成 .dsp 或者.vcproj 文件 例如: qmake -tp vc -o hello.dsp hello.pro
使得程序可调试
一个Release版本的程序没有包含任何调试符合或者其他的调试信息,在开发过程中,给程序提供调试版本的的相关信息是十分有用的.在工程文件里面的CONFIG加上debug就可以轻松做到了,例如 CONFIG += qt debug HEADERS += hello.h SOURCES += hello.cpp SOURCES += main.cpp 用qmake作用上面的的工程文件生成Makefile,你就会可以在调试环境中获取你程序运行时有用的调试信息
添加平台相关的源文件
当你编码了一段时间后,你的程序可能要做一些平台相关的东西,并且决定保持平台相关的代码独立性.因此你要做成2个新的文件来包含到你的pro文件, hellowin.cpp and hellounix.cpp 我们不能都把这2个文件添加到SOURCES变量中啊,因为将会在Makefile文件里面包含这2个文件啊.所以,我们要做的就是使用一个域的东西来使得qmake能处理这样的平台相关的问题.
假如在Windows下,一个简单的域像下面那样添加进去 win32 { SOURCES += hellowin.cpp } 因此,如果是在Windows下运行qmake,就把hellowin.cpp添加到源文件链表里面,如果在别的平台运行qmake,就会忽略他.那么剩下来要做的就是创建一个unix平台相关的域了. 当你做完了,你的pro文件应该像下面看到的样子了 CONFIG += qt debug HEADERS += hello.h SOURCES += hello.cpp SOURCES += main.cpp win32 { SOURCES += hellowin.cpp } unix { SOURCES += hellounix.cpp } 像前面一样,使用qmake来生成Makefile
如果文件不存在停止qmake
如果某写特定的文件不存在,你可能想不要创建Makefile了,我们可以通过使用exists()函数检查一个文件是否存在,我们使用error()函数可以停止qmake 的处理进程.这些都是域的做法一样.只不过用函数简单的替代域.检查main.cpp文件的例子如下: !exists( main.cpp ) {
error( \}
!符号是用来否定的,例如,如果main.cpp文件存在则exists( main.cpp )结果为真.如果文件不存在!exists( main.cpp )结果则为真 CONFIG += qt debug HEADERS += hello.h SOURCES += hello.cpp
共分享92篇相关文档