首页 > 其他分享 >Qt——.pro文件及详细说明

Qt——.pro文件及详细说明

时间:2023-04-12 17:23:17浏览次数:31  
标签:文件 Qt pro LIBS PWD TestProject 详细 debug QT

使用过QT框架进行项目开发的小伙伴,也许都知道.pro文件, 但文件里面的具体配置方式可能比较模糊。本文将详细说明文件里各配置项的含义,并对其编写方法进行归纳总结,以便各位读者可以在未来的项目开发中快速而准确地编写.pro文件。

1.配置项详细说明

  1. 注释:注释是从一行的#开始,到这一行的结束。
  2. QT += :这个是添加QT项目需要的模块的,若项目中要排除某个模块,也可用QT -=配置项。
  3. TEMPLATE = : 这个配置项确定qmake为这个应用程序生成哪种makefile 。有下面五种形式可供选择:
app:建立一个应用程序的makefile,这个是默认值,若模块项未指定,将默认使用此项;
lib:建立一个库的makefile;
vcapp:建立一个应用程序的VisualStudio项目文件;
vclib:建立一个库的VisualStudio项目文件;
subdirs:这是一个特殊的模板,可以创建一个可进入特定目录并为一个项目文件生成makefile,此makfile可以调用make;

4. TARGET = :这个配置项用来指定最后生成的目标应用程序的名称。

5. CONFIG += : 用来告诉qmake关于应用程序的配置信息,使用+=表示在现有的配置上添加,这样会更安全。比如,CONFIG += qt warn_on release 其具体的意义为:

qt :告诉qmake此程序是使用qt来连编的。即qmake在连接、为编译添加所需包含路径时会考虑qt的库;
warn_on :告诉qmake要将编译器设置为输出警告信息形式;
release :告诉qmake应用程序必须被连编为一个可发布的应用程序。开发过程中,也可以使用debug

6. UIC_DIR += :用来指定uic命令,将.ui文件转化为ui_*.h文件存放的目录。

7. RCC_DIR += :用来指定rcc命令,将.qrc文件转换成qrc_*.h文件存放的目录。

8. MOC_DIR += :用来指定moc命令,将含有Q_OBJECT的头文件转换成标准.h文件存放的目录。

9. OBJECTS_DIR += :用来指定目标文件obj的存放目录。

10. DEPENDPATH += : 用来指定工程的依赖路径。

11. INCLUDEPATH += : 用来指定工程所需要的头文件。

12. CODECFORSRC += : 用来指定源文件的编码格式。

13. FORMS += :用来指定工程中的ui文件。

14. HEADERS += : 用来指定工程中所包含的头文件。

15. SOURCES += :用来指定工程中包含的源文件。

16. RESOURCES += :用来指定工程中所包含的资源文件。

17. LIBS += :用来指定引入的lib文件的路径,一般会在前面加下参数-L,根据不同的版本可以分为两种形式:

Release: LIBS += -L folder Path //release版本引入的lib文件
Debug: LIBS += -L folder Path //debug版本引入的lib文件

18. DEFINES += : 用来定义编译选项。

19. DESTDIR += :用来指定目标的生成路径。

20. 跨平台处理信息也要写在.pro文件中。 其示例如下:

win32{

}

unix{

}

2. .pro文件配置实例

 //添加QT依赖的库
QT += gui
QT += core xml network multimedia serialport
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
 
//添加c11配置支持
CONFIG += c++11
//输出文件的名称
TARGET = YouAppName
//配置控制台输出
CONFIG += console
//输出类型application
TEMPLATE = app
 
//源文件
SOURCES += main.cpp \
    appconfig.cpp \
    opendoorthread.cpp \
    TestProject/testform.cpp \
    TestProject/common.pb.cpp \
    TestProject/goods_req.pb.cpp \
    TestProject/goods_resp.pb.cpp
 
//头文件
HEADERS += \
    appconfig.h \
    opendoorthread.h \
    TestProject/testform.h \
    TestProject/common.pb.h \
    TestProject/goods_req.pb.h \
    TestProject/goods_resp.pb.h
 
//配置debug和release
CONFIG +=debug_and_release
CONFIG(debug,debug|release){
DESTDIR += $$PWD/debug
LIBS += -L$$PWD/debug/ -lThorModel
LIBS += -L$$PWD/debug/ -lThorUtil
LIBS += -L$$PWD/debug/ -lThorBLL
LIBS += -L$$PWD/debug/ -lThorHardwareUtil
LIBS += -L$$PWD/debug/ -lprotobufd
LIBS += -L$$PWD/debug/ -lprotobuf-lited
LIBS += -L$$PWD/debug/ -lopencv_core2410d
LIBS += -L$$PWD/debug/ -lopencv_highgui2410d
LIBS += -L$$PWD/debug/ -lopencv_imgproc2410d
LIBS += -L$$PWD/debug/ -lQtActionDetectd
}else{
}
//需要的头文件
INCLUDEPATH += $$PWD/AllDLL/include
INCLUDEPATH += $$PWD/debug/3rdparty/opencv-2.4.10/include \
            $$PWD/debug/3rdparty/opencv-2.4.10/include/opencv \
            $$PWD/debug/3rdparty/opencv-2.4.10/include/opencv2
//ui
FORMS += \
    TestProject/testform.ui

qmake非常方便、快捷,是一个轻量级的makefile生成工具,在使用该指令前要正确地编写.pro文件。


 

侵删。

Qt开发中如何正确的编写.pro文件及详细说明 - 知乎
https://zhuanlan.zhihu.com/p/110782759

标签:文件,Qt,pro,LIBS,PWD,TestProject,详细,debug,QT
From: https://www.cnblogs.com/jessicaland/p/17310476.html

相关文章

  • SNMP(Simple Network Management Protocol)——简单网络管理协议
    SNMP(SimpleNetworkManagementProtocol)——简单网络管理协议 目录一、SNMP简介1.背景2.SNMP管理的网络架构二、SNMPMIB1.SNMPMIB简介2.MIB分类(1)公有MIB(2)私有MIB3.被管理设备的基本属性(1)对象表示符(2)对象的状态(3)对象的访问权限(4)对象的数据类型三、SNMPv1工作......
  • Cannot access defaults field of Properties
    webxmlattributeisrequired(orpre-existingWEB-INF/web.xmlifexecutinginupdatemode)如果遇到IDEA在运行maven打war的时候,提示报错:CannotaccessdefaultsfieldofProperties解决办法是要在pro.xml文件下添加以下插件,才可以打包war包打包jar包不添加也是没有......
  • QTableWidget获取列(行)索引方法
    //获取指定的列索引集合QList<int>QcViewBaseForm::getSelectedColumns(QTableWidget*tableWidget){QList<int>selectedColumns;QList<QTableWidgetSelectionRange>selectedRanges=tableWidget->selectedRanges();for(autorange:selec......
  • mac-m1安装jmeter详细步骤
    mac-m1安装jmeter详细步骤查看jdk安装路径:/usr/libexec/java_home-V修改jmeter的java路径vim/opt/homebrew/Cellar/jmeter/5.4.1/bin/jmeter修改java环境变量,jmeter需要给赋值写的权限,chmod+wjmeter修改成当前java的执行路径安装后的路径是:/opt/homebrew/Cellar/jmeter......
  • PyQT5 QFileDialog文件操作程序崩溃处理
    最近用PyQT写个窗体工具,用到QFileDialog处理文件时程序就崩掉了,网上查的降版本,换32位解释器都尝试了都不靠谱,后面无意中看到一段示例代码终于解决了,记录一下,在给掉坑里的小伙伴做个参考。原代码是用qt模板生成的,添加的构造方法:#-*-coding:utf-8-*-fromPyQt5importQtCo......
  • Vue.js 路由的props配置
    视频index.js(解构赋值,连续解构赋值)Message.vue7.路由的props配置​ 作用:让路由组件更方便的收到参数{ name:'xiangqing', path:'detail/:id', component:Detail, //第一种写法:props值为对象,该对象中所有的key-value的组合最终都会通过props传给Detail组件 //pr......
  • 62、Prometheus-远端存储-Influxdb部署
    1、基础知识1.1、官方文档https://docs.influxdata.com/influxdb/v1.8/supported_protocols/prometh1.2、需求需把要prometheus数据存到其他远程服务器上2、Influxdb部署2.1、配置yum源cat<<EOF|sudotee/etc/yum.repos.d/influxdb.repo[influxdb]name=Influx......
  • Spring中Bean的实例化详细流程
    还是举个例子,我有一个朋友小汪他远赴南方某城市打工。然后安定下来后他的朋友很想来家里玩,但是呢我这个朋友家里搞的很乱,所以他不好意思请朋友来家里玩。这时我的另一个朋友说那请一个保姆把家里好好整理一下就可以了,然后给他介绍了一个保姆大S(PS:本文无意指向任何人,因为Spring的......
  • 第十三篇 手写原理代码 - 实现 Promise
    当使用JavaScript进行异步编程时,我们往往需要面对回调地狱(callbackhell)、代码可读性低、错误处理困难等问题。为了解决这些问题,ECMAScript6(ES6)中引入了Promise。Promise是一种用于处理异步操作的对象,它是一个容器,保存着未来才会结束的事件(通常是一个异步操作),并提供了一组......
  • UVa 524 Prime Ring Problem (数论&DFS)
    524-PrimeRingProblemTimelimit:3.000secondshttp://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=465Aringiscomposedofn(evennumber)circlesasshownindiagram.Putnaturalnumbers  intoea......