翻译qmake文档(二) Getting Started

翻译qmake文档 目录

 

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

 

      本教程教讲授qmake基础知识。这个手册里的其它专题包含更详细的使用qmke信息。

从简单开始

     假设你已经完成了应用程序的基本实现,并且你创建了下边的文件:

    hello.cpp
    hello.h
    main.cpp

 

qt分布的目录 examples/qmake/tutorial 中,你可以找到这些文件。你只需要知道的另一件事是这个程序的安装程序是用Qt写的。首先,用你最喜欢的文本编辑工具,在examples/qmake/tutorial目录下建立hello.pro文件,第一件你需要做的事就是要添加一些代码,告诉qmak

哪些源文件和头文件是项目的一部分。

我们先把源文件添加到项目中,想要这样做你需要使用SOURCES变量。只需要用SOURCES +=新起一行再把hello.cpp写它后边。写完后的效果是这样:

SOURCES += hello.cpp
我们把项目里的每一个源文件都重复这样做,直到我们以如下方式结束:
SOURCES += hello.cpp
SOURCES += main.cpp
如果你喜欢使用Make-like语法,一口气列出所有的文件,你可以使用使用换行符,就像下边一样
SOURCES = hello.cpp \
          main.cpp

 

现在已经列出项目里所有的源文件,头文件也必需添加.添加头文件除了使用名称为HEADERS的变量外和添加源文件的方式是一样的。
    这样做后,你的项目文件看起来应该是这样的:
HEADERS += hello.h
SOURCES += hello.cpp
SOURCES += main.cpp

 

Target名称是自动设置的。它和项目名称是一样的,但会根据相关平台相添加后缀名,举个例子,如果这个项目文件叫hello.pro,这个目标在window平台上是hello.exe,在Unix平台上是hello。如果你想用不同的名字可以在项目文件里设置:
TARGET = helloworld

 

最后一步是设置CONFIG变量。因为这是Qt应用程序,我们需要把qt添加到CONFIG行,这样qmake会把相关的库连接,可以确保moc和uic构建行能包含到生成的Makefile里。

完成的项目文件应该像下面一样:

 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

 

像之前一样使用qmake生成makefile,当你在debug环境下运行应用程序的时候你会得到很有用的信息

 

添加平台特有的源文件

     写几个小时的代码后,你也许会开始为你的应用程序编写特定平台的部分,并坚持对不同的平台编写不能的代码。现在你有两个新文件要包含到项目中:hellowin.cpp和hellounix.cpp。当我们想把这两个文件放到Makefile里,不能只把这些文件添加到SOURCES变量。所以,我们需要做的是根据qmake运行的当前平台用使用相应的作用域进行处理。

将一个简单的作用域添加到依赖于windows平台的文件,就像下边这样:

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。我们可以用exists()方法检查一个文件是否存在。用error()方法我们可以停止正在运行的qmake.这和作用域的工作方式是一样的。用这个方法简单的替换作用域条件。像下面一样检查main.cpp文件:
!exists( main.cpp ) {
    error( "No main.cpp file found" )
}

 

“!”是用来否定测试。像这样, exists(main.cpp)如果是ture那么这个文件存在,如果!exists(main.cpp)是ture那么这个文件不存在。


CONFIG += debug
HEADERS += hello.h
SOURCES += hello.cpp
SOURCES += main.cpp
win32 {
    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 += debug
HEADERS += hello.h
SOURCES += hello.cpp
SOURCES += main.cpp
win32 {
    SOURCES += hellowin.cpp
}
unix {
    SOURCES += hellounix.cpp
}
!exists( main.cpp ) {
    error( "No main.cpp file found" )
}
win32:debug {
    CONFIG += console
}

 


就是这样,你现在已经完成了qmake的教程,准备好开始为你的开发项目编写项目文件吧。
时间: 2024-10-16 04:38:57

翻译qmake文档(二) Getting Started的相关文章

翻译qmake文档 目录

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

翻译qmake文档(三) Creating Project Files

翻译qmake文档 目录   原英文文档:http://qt-project.org/doc/qt-5/qmake-project-files.html   创建项目文件      项目文件包含qmake构建你的应用程序,库文件,或插件需要的所有信息.通常,你会在项目文件里使用一系列的声明指定资源,但是对简单程序构造的支持,允许你为不同的平台或环境描述不同的构建过程. 项目文件元素      qmake使用的项目文件格式可以支持简单和复杂的构建系统使用.简的项目文件使用简单的声明样式,定义标准的

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

  翻译qmake文档 目录 英文文档连接: 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 是帮助简化跨平台项目开发的构建过程的工具,qmake能自动生成Makefile,以至于只需要几行代码就可以创建相应的Makef

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

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

C# VS2012操作word文档 (二).插入表格图片

在上一篇文章"C# VS2012创建word文档.(一)"中我们讲述了如何使用VS2012引用COM中Miscrosoft Word 14.0 Object Library实现创建文档,而这篇文章将讲述如何添加表格和图片,因为我在C#联系数据库做销售系统中需要打印表单,我想以图表形式显示在word中,同时生成相应的饼状图或柱状图,所以才有查阅了相关资料,完成文章,供大家分享.其中使用openFileDialog控件也是希望大家学习了解下. 一. 界面设置 设计界面如下图所示,其中对用的

word2013中翻译文档方法

  在word2013中翻译文档方法一: 步骤一:首先用word 2013打开需要翻译的文档,本教程就以中文翻译成英语为例吧."审阅"--"语言"--"翻译"--"选择转换语言".如图1 ( 图 1 ) 步骤二:弹出的对话框中"选择文档翻译语言"--"翻译为"的选项框中下拉选择"英语(美国)",然后点"确定",如图 2.图 3 ( 图 2 ) (

[Qt教程] 第28篇 XML(二)使用DOM创建和操作XML文档

[Qt教程] 第28篇 XML(二)使用DOM创建和操作XML文档 楼主  发表于 2013-5-21 22:00:51 | 查看: 475| 回复: 0 使用DOM创建和操作XML文档 版权声明 该文章原创于作者yafeilinux,转载请注明出处! 导语 在上一节中我们用手写的方法建立了一个XML文档,并且用DOM的方法对其进行了读取.现在我们使用代码来创建那个XML文档,并且对它实现查找.更新.插入等操作. 环境:Windows Xp + Qt 4.8.4+QtCreator 2.6.2

Redis集群明细文档(转)

相信很多用过Redis的同学都知道,Redis目前版本是没有提供集群功能的,只能单打独斗.如果要实现多台Redis同时提供服务只能通过客户端自身去实现.目前根据文档已经看到Redis正在开发集群功能,其中一部分已经开发完成,但是具体什么时候可以用上,还不得而知.本文是对其集群文档的翻译,文档来源:http://redis.io/topics/cluster-spec 总体来说,其集群没有存在代理节点或者控制器的东西,所有节点功能一样,并且所有节点通过一个叫做连接总线的东西上发送消息包.每个节点会

PHPExcel开发者文档[中文版]

1. 写在前面的话 首先,第一次翻译该文档,漏洞百出,希望大家给点意见和指导. phpExcel官网指出:PHPExcel是基于OPENXML标准,使用PHP读写并创建Excel文件电子表格的引擎. 该项目为php编程语言提供了一系列允许你读写不同文件格式的电子表格的类,像Excel(BIFF).xls.Excel 2007 (Office OpenXML).xlsx.CSV.Libre/OpenOffice Cacl .ods.Gnumeric.PDF.HTML等等.该项目围绕微软的OpenX