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

QT中pro、pri、prf、prl文件相关推荐

  1. Qt 中pro文件换行注意的问题

    Qt 中pro文件换行必须用  \,直接按回车换行会导致程序不正确.如下: CONFIG(debug, debug|release) {OBJECTS_DIR += $$PWD/../debugDES ...

  2. Qt中pro文件如何从相对路径导入库

    Qt中pro文件如何从相对路径导入库 Qt工程中有lib.dll.a.so等文件需要导入时,有时需要指定路径.指定绝对路径换到其他机器编译时会不大方便.那么,如何在Qt pro文件中通过相对路径导入库 ...

  3. qt中.pro文件详细说明

    工程上需要使用QT框架进行项目开发,.pro文件里面的具体配置方式比较模糊.详细整理文件里各配置项的含义,并对其编写方法进行归纳总结. 目录 1.配置项说明 1.1.注释 # 1.2.添加/排除QT项 ...

  4. qt中制作添加 .ts 翻译文件

    qt中制作添加 .ts 翻译文件 QT 中可以用其自身的工具对界面语言进行翻译,以实现支持语言的效果,这对于开发用户跨越语言区域的工具来说是一个特别实用的功能. 下面介绍怎么制作和使用qt的翻译文件: ...

  5. Qt中为工程添加资源文件、给按钮添加图片

    Qt中为工程添加资源文件.给按钮添加图片 1.使用QIcon类.代码如下: QIcon icon;icon.addFile(tr("res/icon/wall.png"));ui- ...

  6. Qt中pro、pri文件的语法介绍

    在Qt当中pro文件则是统筹整个项目的重要文件,而pri文件则是类似于C.C++中的头文件,反正就是我们可以把.pro文件内的一部分单独放到一个.pri文件内,然后包含进来,可以供给其他工程使用,现在 ...

  7. QT中PRO文件写法的详细介绍

    在QT中,有一个工具qmake可以生成一个makefile文件,它是由.pro文件生成而来的,.pro文件的写法如下: 1. 注释 从"#"开始,到这一行结束. 2.模板变量告诉q ...

  8. QT中PRO文件写法的详细介绍,很有用,很重要!

    在QT中,有一个工具qmake可以生成一个makefile文件,它是由.pro文件生成而来的,.pro文件的写法如下: 1. 注释 从"#"开始,到这一行结束. 2.模板变量告诉q ...

  9. QT中PRO文件写法

    在QT中,有一个工具qmake可以生成一个makefile文件,它是由.pro文件生成而来的,.pro文件的写法如下: 1. 注释 从"#"开始,到这一行结束. 2.模板变量告诉q ...

最新文章

  1. 别再蒸馏3层BERT了!变矮又能变瘦的DynaBERT了解一下
  2. Android Studio 配置
  3. 首次开源!一行代码轻松搞定中英文语音识别、合成、翻译核心功能!
  4. MarshalByRefObject浅析
  5. linux桌面旋转了180度,[多图]回顾每一款默认Ubuntu壁纸
  6. 「雕爷学编程」Arduino动手做(35)——模拟量声音传感器
  7. 数据报拥塞控制协议:DCCP(Datagram Congestion Control Protocol)
  8. 未找到依赖项 ‘org.apache.spark:spark-hive_2.11:2.4.5‘
  9. Access数据库学习总结(1)
  10. COLING 2022提交要求与ACL模板要求记录
  11. Devexpress ASP.NET最新版开发.NET环境配置Visual Studo和SQL Server对应版本
  12. 程序员的成长之路——道和术的思考
  13. pthread_cond_broadcast pthread_cond_signal
  14. 什么蓝牙耳机颜值高音质好?颜值高音质好的蓝牙耳机推荐
  15. 十年一梦,小米的原罪得到救赎了吗?
  16. 三门问题详解(附C语言实现)
  17. CDH集群安装OpenLDAP服务并集成sssd客户端
  18. linux的层次结构模型,linux 设备模型(1)
  19. Linux之系统管理命令
  20. SAP中重复制造生产计划编制——生产版本

热门文章

  1. Windows7启动加速技巧
  2. adb remount
  3. 28 个提升开发幸福度的 VsCode 插件(上)
  4. php平均工资多少,中国平均工资月薪是多少?
  5. vite/storybook/rollup搭建一个自己的组件库
  6. 第二课 ceph基础学习-OSD扩容换盘和集群运维
  7. 【图像基础】RAW格式图像简介
  8. C++设计模式(10)——桥模式
  9. 中国Linux市场的真相
  10. python 爬网站