Qt的.pro文件格式解析

在Qt中用qmake生成makefile文件,它是由.pro文件生成而来的,.pro文件的具体格式语法如下:

1.注释

.pro文件中注释采用#号,从“#”号开始,到该行的结束,例如:

2.模板TEMPLATE

模板变量告诉qmake为这个应用程序生成那种makefile文件。下面是可提供使用的选择:

TEMPLATE=app
  1. app-建立一个应用程序的makefile。这是个默认值,所以如果模板没有被指定,该模板将会被使用。
  2. lib -建立一个库的makefile。
  3. vcapp -建立一个应用程序的Visual Studio项目文件。
  4. vclib -建立一个库的VisualStudio项目文件。
  5. subdirs -这是一个特殊的模板,它可以创建一个能够进入特定目录并且为一个项目文件生成makefile,并且为它调用make的makefile。

3.添加文件路径

  1. HEADERS += 用来添加头文件

  2. SOURCES += 用来添加源文件

  3. FORMS += 用来添加 ui 文件

  4. RESOURCES += 用来添加资源文件

  5. INCLUDEPATH += 用来存放添加头文件的路径

  6. DEPENDPATH += 用来添加依赖相关路径

  7. LIBS += 用来添加库文件

注意:

 INCLUDEPATH一般用在添加第三方 .dll 的时候所需的头文件路径;
HEADERS用来添加当前项目的路径;
LIBS += -LC:/Windows/System32/ -luser32
格式为:-L 路径 -l 库名
库比较多的时候可以用 \来达到换行目的
引用相对路径的库文件的时候,$$PWD 指的是项目 .pro 文件所在的路径,`$$OUT_PWD` 指的是编译的目标所在的路径。如果不清楚路径,可以使用 message($$PWD) 打印路径查看绝对路径。
  • DESTDIR += 指定生成的应用程序的存放目录。
  • TARGET = 指定生成的应用程序的名字。
  • UI_DIR += 用来存放编译的时候 ui 生成的 ui_*.h 文件。
  • RCC_DIR += 存放 .qrc 生成的 qrc_*.h 文件。
  • MOC_DIR += 用来存放 moc 命令转换添加的 Q_OBJECT 的 .h 文件为标准 .h 文件的存放路径。
  • OBJECTS_DIR += 用来存放目标文件 .obj 存放的路径。

注:

UI_DIRRCC_DIRMOC_DIROBJECTS_DIR 可以认为都是用来存放中间文件,只是存放的中间文件有所不同,不指定的话默认会存放在 .pro 文件所在的路径,显得工程看起来比较乱

4.添加配置信息

  • CONFIG += 用来指的应用程序的配置信息。
参数 说明
release 项目被联编为一个发布的应用程序
debug 项目被联编为一个debug的应用程序,debug 和 release 同时设置的时候,最后面的一个生效
debug_and_release 项目被联编为 debug 和 release
warn_on 编译器输出尽可能多的警告信息
c++11 支持 c++11 的标准
thread 支持线程,当 CONFIG 参数包含 qt 的时候,这个是默认支持的

5.实例

TEMPLATE	= app
LANGUAGE = C++ QT += widgets xml sql network opengl
CONFIG += qt warn_on release HEADERS += *.h
SOURCES += *.cpp
FORMS += *.ui RESOURCES += \
DiffusionFilter.qrc

最新文章

  1. javascript中一些常见的兼容性问题
  2. 如何用js控件div的滚动条,让它在内容更新时自动滚到底部?
  3. [MFC] MFC 用mciSendString加载WAV资源文件
  4. ViewController添加子控制器 并且弹出
  5. 安装64位版Oracle11gR2后无法启动SQLDeveloper的解决方案(原创) (2016-10-29 下午01:56)
  6. swift与OC混编高级教程之混编框架的创建和调用
  7. 272. Closest Binary Search Tree Value II
  8. 动态网页制作PHP常用的正则表达式
  9. 在Spring中使用异步事件实现同步事务
  10. 手动撸个Android雷达图(蜘蛛网图)RadarView
  11. 20164310Exp6 信息搜索和漏洞扫描
  12. Js 转动抽奖实现
  13. java国际化
  14. BAT美团滴滴java面试大纲(带答案版)之三:多线程synchronized
  15. 二维指针的malloc内存分配(转)
  16. Linux 中的网络数据包捕获
  17. Apache ActiveMQ Fileserver远程代码执行漏洞
  18. Flutter - 创建横跨所有页面的侧滑菜单
  19. Fatal error: Call to undefined function fnmatch() 解决
  20. mysql 修改max_connections

热门文章

  1. 【译】在 ASP.NET 和 ASP.NET Core 之间共享代码
  2. 进程&线程(二):Thread相关方法与属性
  3. Windows运行(Win+R)快速启动所有程序(自定义)
  4. mysql通过mysqldunp命令重做从库详细操作步骤
  5. Java 类方法和类变量
  6. tensorflow源码解析之common_runtime-device
  7. OpenCascade极简环境搭建(QT环境)
  8. vtk网格剖分
  9. BadImageFormatException异常
  10. 配置 conda 镜像环境