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文件的一些用法的主要内容,如果未能解决你的问题,请参考以下文章