【必知必会】pro文件及常用配置

您所在的位置:网站首页 PD文件是什么文件啊 【必知必会】pro文件及常用配置

【必知必会】pro文件及常用配置

2024-07-13 07:49| 来源: 网络整理| 查看: 265

前言

笔者在工作中了解到,有部分同学对Qt的项目文件,即.pro文件的基本配置编写不是很了解。作为一名Qt工程师,.pro文件的编写也是必会的技能,本文对此进行一个讲解,并将相关资料做一个汇总。

.pro文件的介绍

.pro文件是Qt的项目文件,Qt允许我们直接编辑,不像Visual Studio基本上所有项目选项都需要界面来配置。 Qt使用其自带的qmake.exe来解析.pro文件。.pro文件有自己的语法规则,所以学习起来需要一定的成本。目前我们只需要学习编写最基本的配置即可,根据二八定律,80%的情况下,我们只能用到20%的配置方法,剩余20%的情况等到我们熟悉了.pro文件以后,再去查询解决即可。二八定律学习法一定要牢牢掌握哦!

一个.pro文件的例子

打开Qt,新建一个Qt Widgets Application。笔者使用的Qt Creator版本是Qt Creator 4.0.2。 下面是.pro文件中的内容

#------------------------------------------------- # # Project created by QtCreator 2021-08-20T09:56:45 # #------------------------------------------------- QT += core gui greaterThan(QT_MAJOR_VERSION, 4): QT += widgets TARGET = untitled13 TEMPLATE = app SOURCES += main.cpp\ mainwindow.cpp HEADERS += mainwindow.h FORMS += mainwindow.ui

下面依次解释上面的代码各行的含义

QT += core gui 指定当前项目使用的Qt模块,Qt会自动将相关模块的头文件、库文件加入到项目配置中。只有在.pro中指定了需要使用的库,才能在项目中使用相关的功能。 比如使用网络时:QT += network;使用xml时:QT += xml,等等。 新问题: 如何知道某个Qt类在哪个库呢。在Qt手册中找到对应的类,有类所在库的信息,如下图: 查看Qt类所属库

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets 此行的含义为:当前Qt的版本大于Qt4的话,即Qt5的话,就加入widgets模块。可见widgets模块可能是Qt5中才引入的。

TARGET = untitled13 目标程序名称。就是生成出来的目标文件的文件名前缀,不包含扩展名,扩展名由项目类型决定。这里指定了untitled13,如果项目类型是应用程序,则会生成untitled13.exe;如果项目类型是动态库,则会生成untiled13.dll文件。

TEMPLATE = app 指定项目模板类型,也就是项目类型。可以指定app(应用程序)、lib(库),除了这些还有其他类型,Qt文档的qmake manual部分有详细描述。

SOURCES += main.cpp mainwindow.cpp 指定源代码文件列表

HEADERS += mainwindow.h 指定头文件列表

FORMS += mainwindow.ui 指定ui设计文件列表

其他常用配置项

DESTDIR = $$PWD/ 此行代码用于指定目标文件的保存目录。 DESTDIR是英文Destination Directory的缩写,即目的文件夹。 $$PWD是一个保存当前目录路径的变量。

LIBS += -L$$PWD/ 此行代码同Visual Studio中的“附加库目录”功能,用于添加库文件搜索路径。

LIBS += -lmylib 此行代码同Visual Studio中的“附加依赖库”功能,用于添加需要链接的库文件。可以和上面的添加库文件搜索路径写在一起,比如 LIBS += -L$$PWD -lmylib。

CONFIG += staticlib 结合TEMPLATE = lib使用,指定生成静态库。

CONFIG += dll 结合TEMPLATE = lib使用,指定生成动态库。

INCLUDEPATH += $$PWD 用于添加头文件的包含目录。和Visual Studio中的“附加包含目录”功能一致。

DEFINES += MY_MACRO 用于添加全局需要使用的宏定义。和Visual Studio中的“预处理器定义”功能一致。

message($$PWD) message是.pro中的内置函数,用于打印消息或变量,一般用于调试变量或步骤是否正确。 输出的消息会在Qt Creator底部的“概要信息”中打印。

配置判断

CONFIG(debug, debug | release) { # 这里写debug下的配置内容,最常见的用法是链接debug版本第三方的库 } else { # 这里写release下的配置内容,最常见的用法是链接release版本第三方的库 } include(sub_module.pri) 这个非常重要。.pri是子模块配置文件,编写方式和.pro基本一样。不一样的地方就在于,它毕竟是子模块配置文件,只需要写子模块的配置信息即可,不需要写诸如 TEMPLATE = app等这种应该在pro文件中编写的配置项。 有的同学会问,.pri文件在哪创建?界面上怎么找不到?这个确实笔者也一直都没有找到,需要自己新建一个文件,将文件后缀改为.pri,最后在.pro文件中使用include包含进来。 .pri的典型用法这里举一例:用来引入第三方库。一般第三方库需要提供头文件、库文件。想要引入到Qt项目中,编写一个.pri文件就比较简单,需要用到的项目直接include这个.pri文件即可。相对于Visual Studio需要到多个界面配置第三方库,简单了很多。一个引入库的pri子模块文件内容如下图所示: 引入库的pri文件内容 其他说明项 经测试,构建一次项目.pro文件可能会被执行多次。所以不能认为.pro构建一次,只执行一次,和我们想的不太一样,需要注意。 参考资料

当然是官方手册了,在Qt Assistant中,切换到“索引”,输入“qmake manual”即可找到。

结语

学会使用.pro文件真的很重要,一定要掌握最基本的配置。 后续如果有其他比较重要的配置项,会更新说明,敬请关注。

本文首发自公众号“Qt未来工程师”,欢迎关注。 请添加图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3