文档章节

qmake用户手册——10分钟学会使用qmake

TemetNosce
 TemetNosce
发布于 2016/09/19 16:58
字数 785
阅读 13
收藏 0

创建一个项目文件

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

本文转载自:http://www.kuqin.com/qtdocument/qmake-manual.html

TemetNosce
粉丝 1
博文 48
码字总数 24514
作品 0
成都
程序员
私信 提问
解决qt-creator提示没有有效的Qt版本问题

qt-creator是一个很好的c/c++开发工具,使用该工具查看源码十分方便。但是又是出现问题也让人头疼万分…… 在qt-creator中创建新项目时,提示如下错误: 出现该问题的原因是没有找到相应的q...

鉴客
2012/07/11
4.4K
0
针对QT——“在程序文件中(*ui,*cpp,*h)更改之后编译运行的程序结果无法更新”——解决方案

本篇文章主要介绍在QT中,对程序文件(ui,cpp,*h)更改之后编译运行的程序结果却无法更新的解决方案。 问题描述 在设计QT的GUI用户界面时,我们需要不断对程序文件进行修改以优化用户体验,因...

qq_1196581964
2018/12/25
0
0
linux Qt程序打包(linuxdeployqt工具的使用)

linux Qt程序打包(linuxdeployqt工具的使用) 官方提供的最新版本基于Qt5.8的,用户可根据需要从源码编译成本机版本来使用,具体操作过程如下: 工具 1.linuxdeployqt 依赖工具: patchelf(必须...

shzwork
09/18
12
0
centos编译qt everywhere

下载了个qt-everywhere-opensource-src-4.8.5.tar.gz 解压tar zxvf qt-everywhere-opensource-src-4.8.5.tar.gz 进入解压缩后的目录 执行 ./configure 结果报错: Basic XLib functionality......

dijin
2013/08/28
1K
0
超详细Linux下QT使用appimage打包程序

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/kuer1379/article/details/82885810 一 打包工具 1.linuxd...

shzwork
09/18
35
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring使用ThreadPoolTaskExecutor自定义线程池及实现异步调用

多线程一直是工作或面试过程中的高频知识点,今天给大家分享一下使用 ThreadPoolTaskExecutor 来自定义线程池和实现异步调用多线程。 一、ThreadPoolTaskExecutor 本文采用 Executors 的工厂...

CREATE_17
今天
5
0
CSS盒子模型

CSS盒子模型 组成: content --> padding --> border --> margin 像现实生活中的快递: 物品 --> 填充物 --> 包装盒 --> 盒子与盒子之间的间距 content :width、height组成的 内容区域 padd......

studywin
今天
7
0
修复Win10下开始菜单、设置等系统软件无法打开的问题

因为各种各样的原因导致系统文件丢失、损坏、被修改,而造成win10的开始菜单、设置等系统软件无法打开的情况,可以尝试如下方法解决 此方法只在部分情况下有效,但值得一试 用Windows键+R打开...

locbytes
昨天
8
0
jquery 添加和删除节点

本文转载于:专业的前端网站➺jquery 添加和删除节点 // 增加一个三和一节点function addPanel() { // var newPanel = $('.my-panel').clone(true) var newPanel = $(".triple-panel-con......

前端老手
昨天
8
0
一、Django基础

一、web框架分类和wsgiref模块使用介绍 web框架的本质 socket服务端 与 浏览器的通信 socket服务端功能划分: 负责与浏览器收发消息(socket通信) --> wsgiref/uWsgi/gunicorn... 根据用户访问...

ZeroBit
昨天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部