本文共 3212 字,大约阅读时间需要 10 分钟。
hello.cpp hello.h main.cpp
SOURCES += hello.cpp
我们把项目里的每一个源文件都重复这样做,直到我们以如下方式结束:
SOURCES += hello.cppSOURCES += main.cpp
如果你喜欢使用Make-like语法,一口气列出所有的文件,你可以使用使用换行符,就像下边一样
SOURCES = hello.cpp \ main.cpp
现在已经列出项目里所有的源文件,头文件也必需添加.添加头文件除了使用名称为HEADERS的变量外和添加源文件的方式是一样的。
这样做后,你的项目文件看起来应该是这样的:
HEADERS += hello.hSOURCES += hello.cppSOURCES += main.cpp
Target名称是自动设置的。它和项目名称是一样的,但会根据相关平台相添加后缀名,举个例子,如果这个项目文件叫hello.pro,这个目标在window平台上是hello.exe,在Unix平台上是hello。如果你想用不同的名字可以在项目文件里设置:
TARGET = helloworld
CONFIG += qt HEADERS += hello.h SOURCES += hello.cpp SOURCES += main.cpp
现在你可以为你的应用程序用qmake生成Makefile,在命令行里你项目目录下,写入命令行:
qmake -o Makefile hello.pro
然后根据你用的编译器输入make或者nmake.
对于使用Visual Studio用户,qmake也可以生成.dsp或者.vcproj,例如 :
qmake -tp vc hello.pro
可调试应用程序
release版本的应用程序不包含任何debug符号和debug信息,开发期间给应用程序生成debug版本的相关信息是非常有用的。在项目文件里的CONFIG变量加上debug就可以轻松实现。
例如:
CONFIG += qt debug HEADERS += hello.h SOURCES += hello.cpp SOURCES += main.cpp
win32 { SOURCES += hellowin.cpp }
所以如果qmake运行于window平台,它将把hellowin.cpp添加到源文件列表。如果qmake运行于其它平台,它会被简单的忽略。现在剩下需要做的事就是创建一个特定于Unix文件的作用域。
当你做完这些,你的项目看起来应该是这样的:
CONFIG += qt debug HEADERS += hello.h SOURCES += hello.cpp SOURCES += main.cpp win32 { SOURCES += hellowin.cpp } unix { SOURCES += hellounix.cpp }
就像之前一个使用qt生成Makefile
如果一个文件不存在,停止 qmake
如果某个文件不存在,你也许不希望生成Makefile。我们可以用方法检查一个文件是否存在。用方法我们可以停止正在运行的qmake.这和作用域的工作方式是一样的。用这个方法简单的替换作用域条件。像下面一样检查main.cpp文件:
!exists( main.cpp ) { error( "No main.cpp file found" )}
“!”是用来否定测试。像这样, exists(main.cpp)如果是ture那么这个文件存在,如果!exists(main.cpp)是ture那么这个文件不存在。
CONFIG += debugHEADERS += hello.hSOURCES += hello.cppSOURCES += main.cppwin32 { SOURCES += hellowin.cpp}unix { SOURCES += hellounix.cpp}!exists( main.cpp ) { error( "No main.cpp file found" )}
像之前一样使用qmake生成makefile。如果你临时重命名main.cpp,你将看到错误信息,qmake也会停止运行
多条件检查
假设你使用windows系统,当你运行程序的时候,想在命令行里看到qDebug()语句输出。要想看到输出,你必需用适当的控制台设置构建你的应用程序。我们可以简单的把console加入到CONFIG行,window平台的makefile里包含这个设置。然而,假设我们只想运行在window平台时并且debug已经添加到CONFIG行时才把console添加CONFIG行。这需要两个嵌套的作用域。先创建一个作用域,在它里面再创建另一个。把需要处理的设置放在第二个作用域里,像这样:
win32 { debug { CONFIG += console }}
嵌套作用域可以使用冒号:连接在一起。最终的项目文件像下边一样:
CONFIG += debugHEADERS += hello.hSOURCES += hello.cppSOURCES += main.cppwin32 { SOURCES += hellowin.cpp}unix { SOURCES += hellounix.cpp}!exists( main.cpp ) { error( "No main.cpp file found" )}win32:debug { CONFIG += console}
就是这样,你现在已经完成了qmake的教程,准备好开始为你的开发项目编写项目文件吧。
本文转自lpxxn博客园博客,原文链接:http://www.cnblogs.com/li-peng/p/3980243.html,如需转载请自行联系原作者