翻译qmake文档(三) Creating Project Files

上一篇: 翻译qmake文档(二) Getting Started

原英文文档:http://qt-project.org/doc/qt-5/qmake-project-files.html

创建项目文件

项目文件包含qmake构建你的应用程序,库文件,或插件需要的所有信息。通常,你会在项目文件里使用一系列的声明指定资源,但是对简单程序构造的支持,允许你为不同的平台或环境描述不同的构建过程。

项目文件元素

qmake使用的项目文件格式可以支持简单和复杂的构建系统使用。简的项目文件使用简单的声明样式,定义标准的变量,用于指出项目中使用的头文件和源文件。复杂的项目可以使用控制流程结构来调整构建过程。

下面的章节描述了在项目文件里使用不同类型的元素。

变量

在项目文件里,变量是用于保存字符串的列表。在简单的项目里,这些变量通知qmake使用相关的配置信息,或者提供文件名和路径在构建过程使用。

qmake在每个项目文件中查找某些变量,并使用这些内容用于确定什么要写到 makefile里。举例,在HEADERSSOURCES里的变量列表用于告诉qmake在相同目录里的头文件和源文件做为项目文件。

变量也可以在内部保存临时变量列表,现有变量列表可以被新值覆盖或扩展。

下面的代码片段说明了值列表是如何赋值给变量的:

HEADERS = mainwindow.h paintwidget.h

在变量里的值列表是通过下边的方式进行扩展的:

SOURCES = main.cpp mainwindow.cpp           paintwidget.cpp
CONFIG += console

注意:第一个赋值语句只包含指定在同一行里的值是HEADERS变量。第二个赋值语句把SOURCES里不同行的值用反斜杠(\)分开。

CONFIG变量是另一个当生成Makefile时qmake用来使用的特殊变量 。这里讨论了它General Configuration .在上面的代码片段,console被添加到CONFIG已经存在的值列表里。

下边的表格列了了常用的变量并描述了他们的内容。完整的变量列表及它们的描述,请查看Variables

变量 描述
CONFIG 通用的项目配置选项。
DESTDIR 将要存放可执行文件和二进制文件的目录。
FORMS user interface compiler(uic)处理过的UI文件列表。
HEADERS 当构建项目时被使用的头文件(.h)名称列表。
QT 在项目中使用的Qt模块列表
RESOURCES 在最终项目中包含的资源文件(.qrc)列表。更多资源文件的详细信息查看   The Qt Resource System 。
SOURCES 在构建项目时使用的源文件(.cpp)列表。
TEMPLATE 项目使用的模板。这个决定构建过程输出的是否是一个应用程序、库、或者生成一个插件

可以通过在变量名前附加$$读取变量的内容。这样可以把一个变量的内容赋值给另一个变量。

TEMP_SOURCES = $$SOURCES

$$操作符被广泛的应用于内置函数,用于操作字符串和值的列表。更多详细信息,请查看,qmake Language

空格

通常,在变量赋值中用空格分隔值。指定变量中包含空格,你必需用双引号包围变量

DEST = "Program Files"

引号文本被视为一个单独的值保存在变量里。类似的方法用来处理包含空格的路径,特别是在windows平台定义INCLUDEPATHLIBS变量时:

win32:INCLUDEPATH += "C:/mylibs/extra headers"
unix:INCLUDEPATH += "/home/user/extra headers"

注释

可以在项目文件里添加注释。注释以#字符开始持续到这一行的结尾。例如:

# 注释通常开始于一行的头部,但它
# 也可以在这同行内容的后边

要在赋值变量时包含#字符,必需使用内置的LITERAL_HASH变量的内容

内置函数和控件流

qmake 提供了大量的内置函数允处理变量内容。在简单的项目文件里最常用的是include()函数,这个函数用一个文件名做为参数。 给定的文件的内容包含在在项目文件的地方使用include函数。include()函数经常用于包含其它项目文件

include(other.pro)

可以通过作用域(scopes)支持条件结构语句。这种行为和编程语言里的if一样

win32 {
    SOURCES += paintwidget_win.cpp
}

只有条件为true的时候花括号里的任务才会被执行。在这个例子里,必须设置CONFIG的Win32选项。只有在windows系统上才会自动处理,左边的大括号必须和条件在同一行

变量上更复杂的操作通常封面要循环提供的内置函数比如find()unique()和 count()。提供的这些功能,和其它操作字符串和路径,提供用户输入,以及调用扩展工具。使用这些函数更详细的内容,请查看 qmake Language 。所有函数和它们的描述列表,请查看 Replace Functions 和 Test Functions.

项目模板

TEMPLATE变量,是用来定义项目将要构建的类型。如果它没有在项目文件里声明,qmake会假定构建应用程序,并且将为此生成一个适当的Makefile(或者等价的文件)。

下表简要说明了项目类型变量和成描述qmake生成的每一个文件:

模板 qmake输出
app (default) makefile生成一个应用程序
lib makefile生成一个库
aux makefile什么也不生成。如果没有编辑器需要调用创建目标。例如你的项目是用解释型语言编写的。
注意:这个模板类型只适用于基于Makefile的生成器。特别是,它不会与vcxproj和Xcode生成器一起工作。
subdirs Makefile规则包含使用SUBDIRS变量指定的子文件。每一个子目录必须包含它自己的项目文件。
vcapp Visual Studio项目文件 生成一个应用程序
vclib
Visual Studio项目文件生成一个库
vcsubdirs
Visual Studio解决方案文件要在子目录生成项目

查看 Building Common Project Types 在编写使用项目模板和库模板项目的项目文件时的建议。

当使用subdirs模板时,qmake生成一个makefile用来检查每一个子目录,处理在子目录里找到的工程文件,并执行平台的make 工具生成新的Makefile。SUBDIRS变量被用于包含所有要被处理的子目录的列表。

常规配置

CONFIG变量指定项目应该配置的选项和功能。

可以在release模式或debug模式或两种模式一起构建项目。如果debug和release一同指定,最后一个指定的生效。如果你指定 debug_and_release 选项用来构建项目的debug和release两个版本,qmake会生成包含构建两个版本规则的Makefile。可以通过以下方式调用:

make all

添加 build_all选项到 CONFIG变量,在规则构建项目时使用这个默认值。

注意:每一个在CONFIG里指定的变量都可以用做条件作用域。你可以使用内置的CONFIG()方法测试某个配置选项是否存在。例如,下边的代码展示使用这个方法做为域的条件测试是否只有opengl选项被使用

CONFIG(opengl) {
    message(Building with OpenGL support.)
} else {
    message(OpenGL support is not available.)
}

这允许为release和debug 定义不同的配置 构建。更详细的信息,请查看Using Scopes

下边的选项定义要构建的项目类型。

注意:一些选项只有在相关平台上使用时才会生效。

选项 描述
qt 这个项目是Qt应用程序需要连接Qt库。你可以为用QT变量控制应用程序所需的所有额外的Qt模块。这个值是默认添加的,但是你可为非qt项目用qmake删除它。
x11 项目是一个X11应用程序或库。如果目标使用Qt那么这个值是不需要的。

应用程序和库项目模板为你提供了更专业的配置选项用来调整生成过程。选项更详细的解释在Building Common Project Types

例如,如果你的应用程序使用Qt库并且你想在debug模式下构建项目。你的项目文件将包含下边的代码:

CONFIG += qt debug

注意:你必需使用"+=",不能使用"=",不然qmake将不能为使用Qt的配置确定哪些设置是你的应用程序需要的。

声明Qt库

如果CONFIG变量包含qt值,开启qmake对Qt应用程序的支持。这样就可以微调你的应用程序使用的Qt模块。通过QT的变量可以用于声明需要的额外的模块。例如我们可以也下面的方式启用 XML和network模块:

QT += network xml

注意:QT默认包含core和gui模块,所以上边的声明把network和XML模块添加到了默认列表。下边的赋值删除了默认模块,这将导致应用程序的源码在编译的时候出现错误:

QT = network xml # This will omit the core and gui modules.

如果你想构建没有gui模块的项目,你需要用 "-=" 操作删除它。默认情况下,QT包含core和gui。下面的代码将导致最小的Qt项目构建:

QT -= gui # Only the core module is used.

你可以添加到QT变量的Qt模块列表,请查看QT

配置功能

qmake可以提供在功能文件(.prf)里指定的额外的配置功能。这些额外的功能经常为在构建过程使用的自定义工具提供支持。为了能将功能添加到构建过程,把功能的名字(功能文件名的词干)追加到CONFIG变量后边

例如,用下边的代码qmake可以配置构建过程利用pkg-config提供的外部库。如D-Bus和ogg库。

CONFIG += link_pkgconfig

PKGCONFIG += ogg dbus-1

关于添加新特性更详细的信息,请查看 Adding New Configuration Features.

声明其它库

除了Qt支持的库,你可以把其它的库添加到工程里,你必需在工程文件里指定它们。

qmake可以查找库所在的路径,及特定库链接可以被添加到LIBS变量的值列表。你可以指定库的路径或者,或者使用UNIX样式符号指定库和路径。

例如,下边的代码显示如何指定库:

LIBS += -L/user/local/lib -lmath

包含头文件的路径也可以使用相同的方式添加到 INCLUDEPATH 变量

例如,添加几个用于查找头文件的路径

INCLUDEPATH = c:/msdev/include d:/stl/include
				
时间: 2024-10-08 10:24:33

翻译qmake文档(三) Creating Project Files的相关文章

翻译qmake文档 目录

翻译qmake文档 目录 利用空闲时间把qmke的文档翻译出来,翻译水平有限,有些地方翻译的不好,请谅解, 如果您能指出来,我会很感激并在第一时候做出修改. 翻译qmake文档(一) qmake指南和概述 翻译qmake文档(二) Getting Started 翻译qmake文档(三) Creating Project Files 翻译qmake文档(四) Building Common Project Types http://www.cnblogs.com/li-peng/p/402613

翻译qmake文档(四) Building Common Project Types

翻译qmake文档 目录 本章原英文文档:http://qt-project.org/doc/qt-5/qmake-common-projects.html 构建常见的项目类型 本章描述如何设置基于Qt的应用程序.库和插件的三种常见项目类型的qmake项目项目文件.虽然所有的项目类型使用大量相同的变量,但是它们中的每一个都使用项目特定的变量来自定义输出文件. 这里不会描述特定于平台的变量.更多详细修改请查看  Qt for Windows - Deployment 和 Qt for Mac OS

翻译qmake文档(二) Getting Started

上一篇文章:  翻译qmake文档(一) qmqke指南和概述 原英文文档: http://qt-project.org/doc/qt-5/qmake-tutorial.html 本教程教讲授qmake基础知识.这个手册里的其它专题包含更详细的使用qmke信息. 从简单开始 假设你已经完成了应用程序的基本实现,并且你创建了下边的文件: hello.cpp hello.h main.cpp qt分布的目录 examples/qmake/tutorial 中,你可以找到这些文件.你只需要知道的另一件

翻译qmake文档之 qmqke指南和概述(一)

利用空闲时间把qmke的文档翻译出来,语言水平有限,有些地放翻译的不好,请谅解,如果您能指出来,我会很感激并在第一时候做出修改. 原文连接: http://qt-project.org/doc/qt-5/qmake-manual.html http://qt-project.org/doc/qt-5/qmake-overview.html 由于qmake manual和overview  两章的内容都不多就把它们放在一起翻译了出来 qmake 指南 qmake 是帮助简化跨平台项目开发的构建过程

怎样翻译word文档中的英文,仅需三分钟即可搞定

怎样翻译word文档中的英文?在职场办公当中,难免会遇到外国客户.在与外国客户沟通.合作的过程当中,所使用得合作文件.资料的内容几乎都是英文.这也就使得英文不好的职员,除了准备合作资料外还需要花费大量时间去查阅单词,翻译语句,大大降低了工作效率.今天小编就将告诉大家如何快速有效地翻译word文档中的英文. 使用工具:迅捷pdf转换https://www.xunjiepdf.com/converter 1.大部分翻译工具,都只能单个单词或者逐句翻译,就算能翻译整段也是有次数限制.这样就会导致翻译出

Word文档怎么翻译?翻译word文档简单步骤讲解

将文档进行翻译是我们经常遇到的事情,市面上也出现了很多翻译文档的工具,但是使用起来总觉得不是那么好用,一款易上手的工具对我们来说是非常重要的,今天的课堂就是小编给大家分享使用工具将word文档进行翻译的三个小技巧,一起来了解下吧! 文档翻译工具一:在线转换器 1.进入PDF在线转换器页面,在菜单栏中找到文档处理,在弹出的子栏目中找到word在线翻译: 2.通过点击选择文件将需要进行翻译的文件上传至指定区域即可,在自定义转换设置中可以根据自己的需要选择翻译的语种: 3.点击开始翻译,当进度条显示转

如何使用PDF编辑器翻译PDF文档

在工作和学习中,有时候看到PDF文件上密密麻麻的外文,是不是常常有种无力感?这一点,需要经常接触外国文献或者文件资料的朋友可能深有感触. 现在就给大家介绍一款可以翻译PDF文档的PDF工具--福昕PDF编辑器! 用PDF编辑器打开文件,左键拉选需要翻译的文本,然后点击顶部菜单栏"主页"-"翻译" 这样就可以翻译外文了,操作非常简单,希望能帮到大家. 原文地址:https://www.cnblogs.com/vincebin/p/9936611.html

文档翻译软件怎么用?怎么翻译Word文档

如何翻译Word文档?跟国外合作的项目发送给中文内容的文件天猫肯定看不明白,为了尊重对方,我们需要将中文的文件翻译成英文的,文件内容那么多,你还在想一句句人工翻译吗?别搞错了,现在翻译文件都在用文档翻译器了好吧,不仅准确率高,而且效率也没什么可挑剔的.下面小编就来为大家介绍一下文档翻译软件的使用方法,帮助你轻松翻译Word文档!具体操作如下:(方法参照文档翻译器)1:打开文档翻译器,在页面中我们可以看到有四种翻译的功能,我们选择文档翻译就好了,不过这个也是默认的操作功能.2:之后上传需要翻译的文

如何翻译PPT文档?PPT文档翻译一招搞定

PPT文档怎么翻译?PPT文件中有需要翻译的内容的时候,你还在一个个的复制进网页中搜索然后进行翻译吗?这个方法已经淘汰了,不仅麻烦,还拉低你的工作效率,今天小编来为大家介绍一个翻译PPT文档的方法,教你摆脱死板的翻译方法,翻译PPT也可以轻松搞定!准备工具:文档翻译器还需要提前准备好需要翻译的PPT文件,当然电脑也少不了,这是一个基本的辅助工具哦.好啦,上面的工作就绪后,开始翻译啦:1:打开文档翻译器后,点击左侧功能栏中的文档翻译功能,之后点击页面内的[点击上传文档]按钮添加要进行翻译的PPT文