Qt_Pro详解

简介:

在QT中,有一个工具qmake可以生成一个makefile文件,它是由.pro文件生成而来的,.pro文件的写法如下:

1. 注释 从“#”开始,到这一行结束。

2.模板变量告诉qmake为这个应用程序生成哪种makefile。

下面是可供使用的选择:

TEMPLATE = app

A> app -建立一个应用程序的makefile。这是默认值,所以如果模板没有被指定,这个将被使用。

B> lib - 建立一个库的makefile。

C> vcapp - 建立一个应用程序的VisualStudio项目文件。

D> vclib - 建立一个库的VisualStudio项目文件。

E> subdirs -这是一个特殊的模板,它可以创建一个能够进入特定目录并且为一个项目文件生成makefile并且为它调用make的makefile。

3、#指定生成的应用程序放置的目录

DESTDIR+= ../bin

4、#指定生成的应用程序名

TARGET= pksystem

5、#配置信息 CONFIG用来告诉qmake关于应用程序的配置信息。

CONFIG+= qt warn_on release

在这里使用“+=”,是因为我们添加我们的配置选项到任何一个已经存在中。这样做比使用“=”那样替换已经指定的所有选项是更安全的。

A> qt部分告诉qmake这个应用程序是使用Qt来连编的。这也就是说qmake在连接和为编译添加所需的包含路径的时候会考虑到Qt库的。

B> warn_on部分告诉qmake要把编译器设置为输出警告信息的。

C> release部分告诉qmake应用程序必须被连编为一个发布的应用程序。在开发过程中,程序员也可以使用debug来替换release

6、#指定uic命令将.ui文件转化成ui_*.h文件的存放的目录

UI_DIR+= forms

7、#指定rcc命令将.qrc文件转换成qrc_*.h文件的存放目录

RCC_DIR+= ../tmp

8、#指定moc命令将含Q_OBJECT的头文件转换成标准.h文件的存放目录

MOC_DIR+= ../tmp

9、#指定目标文件(obj)的存放目录

OBJECTS_DIR+= ../tmp

10、#程序编译时依赖的相关路径

DEPENDPATH+= . forms include qrc sources

11、#头文件包含路径

INCLUDEPATH+= .

#qmake时产生的信息,【$${a}读取变量a的字符串】,【$$(PATH)读取环境变量PATH】 #message($$(PATH))

12、#源文件编码方式

CODECFORSRC= GBK

13、#工程中包含的头文件

HEADERS+= include/painter.h

14、#工程中包含的.ui设计文件

FORMS+= forms/painter.ui

15、#工程中包含的源文件

SOURCES+= sources/main.cpp sources/painter.cpp

16、#工程中包含的资源文件

RESOURCES+= qrc/painter.qrc

LIBS+= -L folderPath //引入的lib文件的路径 -L:引入路径

Release:LIBS += -L folderPath // release 版引入的lib文件路径

Debug:LIBS += -L folderPath // Debug 版引入的lib 文件路径

DEFINES+= XX_XX_XXX //定义编译选项,在.h文件中就可以使用:#ifdefine xx_xx_xxx

RC_FILE= xxx.icns

17# 平台相关性处理 我们在这里需要做的是根据qmake所运行的平台来使用相应的作用域来进行处理。

为Windows平台添加的依赖平台的文件的简单的作用域看起来就像这样:

win32 { SOURCES += hello_win.cpp }

当你已经创建好你的项目文件,生成Makefile就很容易了,你所要做的就是先到你所生成的项目文件那里然后输入:

Makefile可以像这样由“.pro”文件生成:

qmake -oMakefile hello.pro

对于VisualStudio的用户,qmake也可以生成“.dsp”文件,例如:

qmake -tvcapp -o hello.dsp hello.pro



本文转自夜&枫博客园博客,原文链接:http://www.cnblogs.com/newstart/p/3370628.html,如需转载请自行联系原作者

相关文章
|
负载均衡 网络协议 中间件
IP负载均衡技术
【8月更文挑战第17天】IP负载均衡技术
342 4
|
NoSQL Redis 缓存
【后端面经】【缓存】36|Redis 单线程:为什么 Redis 用单线程而 Memcached 用多线程?
【5月更文挑战第17天】Redis常被称为单线程,但实际上其在处理命令时采用单线程,但在6.0后IO变为多线程。持久化和数据同步等任务由额外线程处理,因此严格来说Redis是多线程的。面试时需理解Redis的IO模型,如epoll和Reactor模式,以及其内存操作带来的高性能。Redis使用epoll进行高效文件描述符管理,实现高性能的网络IO。在讨论Redis与Memcached的线程模型差异时,应强调Redis的单线程模型如何通过内存操作和高效IO实现高性能。
204 7
【后端面经】【缓存】36|Redis 单线程:为什么 Redis 用单线程而 Memcached 用多线程?
flutter中分割线效果实现(三种方法)
第一种:Divider(Double:height,Double:indent,color:color) 1.height:分割线Widget的高,不是分割线本身效果的高,可以达到两个Widget 之间margin的效果 2.indent:分割线左边缩进长度
1169 0
|
Linux 编译器 C语言
百度搜索:蓝易云【Linux系统:CentOS编译Linux内核教程!】
请注意,以上步骤仅提供了一个基本的编译内核的概述。实际的编译过程可能因系统配置、内核版本等因素而有所差异。建议参考Linux内核官方文档和其他可靠资源,以获取更详细和特定于你的系统的指导。在进行任何内核操作之前,请务必备份你的系统数据并了解相关风险。
291 2
百度搜索:蓝易云【Linux系统:CentOS编译Linux内核教程!】
|
SQL Oracle 关系型数据库
oracle笔记整理2
oracle笔记整理2
|
开发框架 .NET 数据库
[笔记]Windows系统编程《九》Windows服务编程
Windows系统编程《九》Windows服务编程
618 0
[笔记]Windows系统编程《九》Windows服务编程
|
存储
进程间通讯-共享内存
进程间通讯-共享内存
152 0
|
SQL Java 数据库连接
【Mybatis技术专题】如何清晰的解决出现「多对一模型」和「一对多模型」的问题
【Mybatis技术专题】如何清晰的解决出现「多对一模型」和「一对多模型」的问题
184 0
|
JSON Dubbo Cloud Native
What's new in dubbo-go v1.5.6
dubbogo 社区近期发布了 dubbogo v1.5.6。该版本和 dubbo 2.7.8 对齐,提供了命令行工具,并提供了多种加载配置的方式。
What's new in dubbo-go v1.5.6
|
机器学习/深度学习 搜索推荐 算法
想买奶茶,高德如何让我更快喝到?
小叽导读:信息检索是处理好LBS大数据和用户之间的智能链接的关键技术,而搜索建议又是检索服务不可或缺的组成部分。比如,我要买杯奶茶,在高德地图上输入“一点点”,高德使用智能定位、排序的方式让我快速找到店址,让我更快喝到。 本文将主要介绍机器学习在高德搜索建议的具体应用,尤其是在模型优化方面进行的一些尝试,这些探索和实践都已历经验证,取得了不错的效果,并且为后来几年个性化、深度学习、向量索引的应用奠定了基础
2303 0
想买奶茶,高德如何让我更快喝到?