Qt .pro文件的一些用法

Posted r0xfed

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt .pro文件的一些用法相关的知识,希望对你有一定的参考价值。

i)       我学习Qt的第一本书籍是Mark Summerfield等编写的《C++ GUI Qt 4编程(第2版)》,但当时使用的是Qt 5.8开发环境。因此在Qt 5及其以上版本的开发环境实践该书代码时需要在.pro文件中写入:QT += widgets。

ii)      quote关键字用于引用目录, 等同于定义一个环境变量。

iii)     INCLUDEPATH和DEPENDPATH的路径就是其字面路径,如果字面路径还有子目录,子目录是不会被检索到的。

iv)     如果需要利用Qt的翻译功能, 则需要写: TRANSLATION += <.pro‘s name>_ZH_CN.ts。这里语言和区域名字一定要严格,否则之后生成的同名.qm文件无法被Qt翻译器加载。

v)      如果需要利用预编译功能以加快编译速度,则需要写:PRECOMPILED_HEADER += <需要预编译的头文件>,可在Qt的项目中添加一个.h文件,里边include要预编译的头文件,这样可以加快编译速度。常用的头文件有: <QtGui>, <QtCore>, <QtWidgets>等。

vi)     如果需要利用在多核CPU上的并行编译功能以加快编译速度,则需要写:QMAKE_CXXFLAGS += /MP

注: v), vi)来源于“为什么 Qt Creator 的编译如此之慢? - 姚冬的回答 - 知乎https://www.zhihu.com/question/23045749/answer/23659031” ,感谢大神的解答!

vii)    如果需要禁用Qt的断言:需要写入: DEFINES += QT_NO_DEBUG。这样断言就不会生效了。

viii)   $$PWD虽然指项目的顶级目录, 但是在Qt下, 如果项目是debug版本, 则$$PWD实际指项目"build-*-Debug"目录下的"debug"目录; 如果项目是release版本, 则$$PWD实际指项目"build-*-Release"目录下的"release"目录。

ix)     "TARGET": 语法: TARGET = <字符串>, 含义: 令生成的exe或者库文件使用该字符串作为文件名。

x)      "TEMPLATE": 语法: TEMPLATE = app / lib, 含义: app: 生成exe; lib: 生成库文件。注: 如果某个项目的*.pro文件中仅有"TEMPLATE = lib", 则生成动态库。

xi)     "DESTDIR": 语法: DESTDIR = <字符串>, 含义: 生成的库或exe的存放位置, "/"符号会自动适应windows平台, 如果没有指定对应的目录, Qt会自动创建。

xii)    如果仅仅指定了"DESTDIR"和"DLLDESTDIR", 那么两个目录下都会生成动态库; 如果指定CONFIG += staticlib, 就会补充生成静态库了。

xiii)   为编译的Debug库添加d后缀, 需要在.pro文件中写入:
         !debug_and_release|build_pass {
             CONFIG(debug, debug|release) {
                 TARGET = $$member(TARGET, 0)d
             }
         }
         这样Debug版的some库及其.pdb文件名就是: somed.lib及somed.pdb; Release版的some库文件名就是: some.lib了。

注: xiii)参考了QtitanRibbon库源代码的.pro文件。







以上是关于Qt .pro文件的一些用法的主要内容,如果未能解决你的问题,请参考以下文章

Qt之pro文件解析

QT Creator工程简介

Qt项目管理文件(.pro)及其作用详解

vs2010打开qt的.pro文件时错误解决办法

Qt学习之路1---软件下载安装及工程简介

Qt:在制作之前运行脚本