QT中pro、pri、prf、prl文件

24 篇文章 1 订阅

QT .pro文件

在QT中使用qmake自动生成pro文件,如果要自己定制工程选项,则需要自行修改pro文件。

pro文件有以下关键字:TEMPLATE、TARGET、DESTDIR、DEPENDPATH、INCLUDEPATH、SOURCES、HEADERS、FORMS、LIBS、TRASHLATIONS、RESOURCES、CONFIG、UI_DIR、RCC_DIR、MOC_DIR、OBJECTS_DIR、DEFINES。

其中:TEMPLATE变量定义了工程的编译模式,默认编译为app。TEMPLATE可以为:app、lib(库)、subdirs(多级目录管理)等。
 

TARGET:生成目标的名字。如:TARGET = mylib

DESTDIR:生成目标的路径。如:DESTDIR = ../bin/ 则目标文件的路径为当前pro文件所在目录的上一级的bin目录下

DEPENDPATH:工程的依赖路径

INCLUDEPATH:指定工程要用到的头文件路径,一般包括用户自定义的头文件路径或没有放入系统头文件路径的头文件路径

SOURCES:工程需要的源文件

HEADERS:工程所需要的头文件,一般包括用户自定义的头文件或未放入系统头文件路径的头文件

FORMS:工程要用到的ui文件(ui文件时用QT设计器生成的)

LIBS:加载动态库文件。如:LIBS+=./mitab/libmitab.so

TRASHLATIONS:加载要用到的语言翻译*.ts文件

RESOURCES:加载要用到的资源*.qrc文件

CONFIG:告诉qmake应用程序的配置信息:这个变量可以用来指定是生成debug模式还是release模式,也可以都生成;也可以用来打开编译器警告(warn_on输出尽可能多的警告信息)或者关闭(warn_off -编译器会输出尽可能少的警告信息);还可以用来配置要Qt加载库,例如如果要用到Qt的多线程,则:CONFIG+=qt thread再例如配置debug或release模式:
CONFIG +=debug_and_release
CONFIG(debug,debug|release){
TARGET= hello
DESTDIR= ./debug
}else{
TARGET= hello
DESTDIR= ./release
}
如果你要在windows下面运行console:CONFIG +=console

UI_DIR:UIC将ui转化为头文件所存放的目录

RCC_DIR:RCC将qrc文件转化为头文件所存放的目录;

MOC_DIR:MOC命令将含Q_OBJECT的头文件转换为标准的头文件存放的目录;

OBJECTS_DIR:生成的目标文件存放的目录;

DEFINES:应用程序所需的额外的预处理程序定义的列表#在.h文件中就可以使用:#ifdefinexx_xx_xxx;

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

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

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

RC_FILE = xxx.icns //程序中所用到的图片等资源文件;

QT是跨平台的,所以我们在不同的平台上用同一个pro文件,这要加入有关平台的信息。windows平台是win32,Linux平台是unix。
例如在Windows和Linux的动态库文件格式是不一样的,一个是lib文件一个是so文件:win32:LIBS+= ./mitab/mitab_i.lib   unix:LiBS+= ./mitab/libmitab.so
再如:win32{SOURCES+= hello_win.cpp //win平台}   unix{SOURCES+= hello_linux.cpp //unix/linux平台}

可以通过在其它任何一个变量的变量名前加$$来把这个变量的值分配给当前的变量,例如:MY_DEFINES= $$DEFINE #将DEFINE的值分配给MY_DEFINES
又如:
TARGET = myapp
UI_DIR = ../bin/$$TARGET/ui
MOC_DIR = ../bin/$$TARGET/moc
OBJECTS_DIR = ../bin/$$TARGET/objects
则uic所生成的文件在路径../bin/myapp/ui目录下;moc文件在../bin/myapp/moc目录下;obj目标文件在../bin/myapp/objects目录下。

上文摘自:https://www.cnblogs.com/boright88/p/6264642.html

另外常常会在pro或者pri文件中见到$$PWD,其代表pro或者pri文件的当前路径。

另外QT中的pro项目文件作用主要通过QT中集成的qmake来说生成对应的makefile文件,然后对所有的源文件进行编译,(vs的老版本中以前也有与makefile的功能nmake,现在已经没了,笔者认为vs应该也是用nmake对vcproj文件操作去生成makefile文件,完后对源文件统一编译)。

QT中,有关qmake与makefile的关系可以看:https://blog.csdn.net/simonforfuture/article/details/78580510

pri、prf、prl

pri其实都可以被pro项目文件代替,pri的存在只是为了更好的讲pro划分,一般是将源文件的包含部分单独放在pri文件中,另外pri文件中还可以在引入pri文件(引入格式与pro中引入pri文件一样),当然需要在pro中加上类似于这用语句将其连接起来:

include($$PWD/../../../src/ui/mapwidget/mapwidget.pri)

对于prf、prl一般很少自己编写

对于三者的详细介绍说明,参考https://blog.csdn.net/dbzhang800/article/details/6348432

  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Qtpro pri是一种源代码管理规范,是为了更加方便、灵活地管理大型项目的源代码而设立的。Qt是一个跨平台的C++应用程序开发框架,具有易于使用、可扩展、高兼容性等特点,被广泛应用于各种类型的软件开发。而Qtpro pri则是基于Qt框架的多个.pro文件和一个.pri文件进行的项目管理规范。 在Qtpro pri模式下,每个子模块都有一个单独的.pro文件,而主模块则有一个.pri文件,主要用于存储所有的子模块的依赖关系和链接库信息。通过这种方式,可以实现模块化的编程方式,降低了各个模块之间的耦合度,提高了代码的可重用性和可维护性。 Qtpro pri的项目管理规范,有以下几个优点: 1、方便管理:通过多.pro和一个.pri文件的方式管理项目,非常便于管理和维护大型的项目,尤其是对于代码库有多个开发人员同时参与开发的情况下,有助于降低开发成本和提高整体开发效率。 2、模块化编程:将程序拆分成不同的模块,各个模块之间相对独立,互相之间不会影响,同时也方便代码的重用和维护。 3、可扩展性:在Qtpro pri下,可以轻松地添加或删除子模块,通过维护.pri文件依赖关系,子模块的变动不会对主模块产生重大影响,而且管理起来更加灵活和可扩展。 总之,Qtpro pri的优势在于易于管理,方便扩展和维护,同时也可以实现代码的模块化,减少了代码的耦合度,提高了代码的可读性和可维护性,因此被广泛应用于各种类型的软件开发

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值