0%

Qt项目配置文件pro和pri介绍

QT工程管理文件配置介绍

1.pro文件配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
TEMPLATE = app      # app:生成exe可执行文件 lib:生成dll库
LANGUAGE = C++ # 使用C++开发
QT += widgets # 添加QT控件库
CONFIG += console # 使能打印终端
TARGET = appName # exe的文件名
HEADERS += h1.hpp \
h2.hpp # 添加头文件

SOURCE += h1.cpp \
h2.cpp # 添加源文件

FORMS += dialog.ui # 添加ui文件

DESETDIR = ../../../bin # 最终目标可执行文件的存放路径
OBJECTS_DIR = ../../../obj # 程序生成的中间临时文件的存放路径
MOC_DIR = ../../../obj/moc # moc命令编译生成临时文件的存放路径

$$(path) # 使用环境变量
$$LANGUAGE # 使用脚本变量
var1='$$LANGUAGE'_suffix # 变量名加后缀
message(var1) # 打印信息

1.1 EXE or Dll 生成 – TEMPLATE

函数名 描述
TEMPLATE=app 本项目生成一个EXE
TEMPLATE=lib 本项目生成一个dll
TEMPLATE=subdirs 表示本项目将扫描指定的子目录合集,与SUBDIRS配合使用

1.2 使用C++开发语言 – LANGUAGE

LANGUAGE = C++

1.3 生成目标文件名称 – TARGET

TARGET = xxxx 根据TEMPLATE的设置会生成相应的xxxx.dll or xxxx.exe文件

1.4 debug 、 release or both – CONFIG

  • CONFIG += aaa bbb ccc # 增加配置项
  • CONFIG -= aaa bbb ccc # 删除配置项

配置项取值

序号 配置值 描述
1 release 以发布版本构建项目 CONFIG+=release or 取消: CONFIG-=release
2 debug 以调试版本构建项目 CONFIG+=debug or 取消: CONFIG -= debug
3 debug_and_release 以debug和release两个版本进行构建 CONFIG+=debug_and_release
4 precompile_header 表示可以在项目中使用预编译头文件 CONFIG+=precompile_header
5 rtti 启用RTTI支持,关闭时使用rtti_off
6 stl 启用STL支持,关闭时使用stl_off
7 thread 表示支持多线程,当CONFIG取值中包含qt时使用,默认使用
8 warn_on 表示编译器尽可能的多输出报警信息
9 warn_off 表示编译器尽可能的少输出报警信息
10 qt 表示需要链接qt的类库,一般只在pro主文件中使用,否者一般在开发服务类应用库时,才会使用该配置
11 C++11 启用C++11支持
12 C++14 启用C++14支持

1.5 使用QT模块 – QT

QT += xxx xxx xxx or QT -= xxx xxx

1.6 各种DIR和PATH的使用

序号 子项 描述 案例
1 INCLUDEPATH 描述构建项目时,使用的include目录
如果包含UI资源,需要先配置UI_DIR路径,在将其添加到INCLUDEPATH中
INCLUDEPATH=$$(PROJECTHOME)/include
UI_DIR=$$(PROJECTHOME)/obj/demo/dialog/ui
INCLUDEPATH += UI_DIR
2 DESTDIR 项目生成dll或exe的路径 DESTDIR = $$(PROJECTHOME)/lib
3 MOC_DIR moc命令生成文件的存放目录 MOC_DIR = $$(PROJECTHOME)/obj/moc
4 OBJECTS_DIR 生成中间件的存放路径 OBJECTS_DIR = $$(PROJECTHOME)/obj
5 RCC_DIR qt资源编译生成路径 RCC_DIR = $$(PROJECTHOME)/obj/resources
6 UI_DIR 项目生成dll或exe的路径 UI_DIR = $$(PROJECTHOME)/obj/ui

1.7 FORMS使用

用于描述项目中使用的UI文件

1
2
FORMS = dialog.ui \ 
login.ui

1.8 添加头文件、源文件 – HEADERS SOURCES

用于描述项目中用到的头(源)文件列表

1
2
3
HEADERS = abc.pro \ 
animate/files/myfile.h \
$$(PROJECTHOME)/include/base.h

1.9 添加资源 – RESOURCES

用于描述项目使用的资源描述文件(*.qrc):RESOURCES += mdi.qrc

1.10 添加库文件 – LIBS

-l:表示库文件名 LIBS += -lmycomm

‘-L’:表示库文件路径 当一个文件夹中包含多个lib文件时

1
2
3
LIBS += -L/usr/local/myprogram/lib \ 
-lmcomm \
-lfesp

1.11 描述项目中用到的翻译文件 – TRANSLATIONS

1
TRANSLATIONS = translations/graphplatform_zh_CN.ts

2. pri配置文件

1.关键字

序号 关键字 描述 案例
1 include 在pro中引入pri include(../base.pri)
2 unix/win32 用于定义在不同平台下构建项目时的配置 unix{ ... }
win32{ ... }
3 DEFINES 在pri中定义宏 DEFINES *= xxxx
4 CONFIG 项目配置参数 CONFIG += xxxx
5 QMAKE_CXXFLAGS 配置编译标志 QMAKE_CXXFLAGS = -wd499

3.使用qmake生成VS2019的工程项目管理

使用x64 Native Tools Command,进入源码pro目录,输入如下命令

1
qmake -tp vc