一般在新建一个工程后,在目录中都有一个*.pro的文件,这个文件名称与项目名称相同,我们称之为工程管理文件。该文件主要实现工程的相关配置,例如工程中包含的组件,文件,链接库等。qmake使用.pro文件生成Makefile。

现在看一下我们以前新建的test工程目录,其中test.pro就是工程管理文件。

Qt编译项目时,首先时qmake根据pro文件生成相应的makefile文件,然后再通过make命令编译项目。工程新建时pro文件并不是空的,里面会包含一些基础信息。在后续的开发中,Qt会自动修改pro文件内容,有时我们也会手动添加一些配置。

1.配置信息构成

双击test.pro文件,我们可以看到如下内容:

QT       += core guigreaterThan(QT_MAJOR_VERSION, 4): QT += widgetsTARGET = test
TEMPLATE = app# The following define makes your compiler emit warnings if you use
# any feature of Qt which has been marked as deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS# You can also make your code fail to compile if you use deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0CONFIG += c++11SOURCES += \main.cpp \mainwindow.cppHEADERS += \mainwindow.hFORMS += \mainwindow.ui# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target

#开头的行为注释,其余部分为配置信息。

配置信息由三部分,左侧为配置项,中间是操作符(+=,-=,=),右侧为值。

2.常用配置信息

QT

指定项目中用到的所有模块,默认值为 core 和 gui,中间用 += 符号连接。

例如

QT += core gui

如果想建立一个不包含Qt GUI模块的项目,可以使用“ -=”操作符。

例如

QT -= gui

TARGET

指定目标生成的名称。默认值为项目名。

例如

TARGET = test

TEMPLATE

指定生成makefile的类型。

可供使用的选项如下:

app:创建一个用于构建应用程序的Makefile(默认)。
lib:创建一个用于构建库的Makefile。
subdir: 创建一个用于构建目标子目录的Makefile,子目录使用SUBDIRS变量指定。
aux:创建一个不建任何东西的Makefile。如果没有编译器需要被调用来创建目标,比如你的项目使用解释型语言写的,使用此功能。注:此模板类型只能用于Makefile-based生成器。特别是,它不会工作在vcxproj和Xcode生成器。
vcapp:仅适用于Windows。创建一个Visual Studio应用程序项目。
vclib:仅适用于Windows。创建一个Visual Studio库项目。

例如:

TEMPLATE = app

DEFINES

在程序中新定义一个指定的宏,比如 DEFINES += xxx,如同在程序中添加了 #define xxx 语句。

例如:

DEFINES += QT_DEPRECATED_WARNINGS

CONFIG

指定编译器选项和项目配置,值由qmake内部识别并具有特殊意义。

以下配置值控制编译标志:

release:项目以release模式构建。如果也指定了debug,那么最后一个生效。
debug:项目以debug模式构建。
debug_and_release:项目准备以debug和release两种模式构建。
debug_and_release_target:此选项默认设置。如果也指定了debug_and_release,最终的debug和release构建在不同的目录。
build_all:如果指定了debug_and_release,默认情况下,该项目会构建为debug和release模式。
autogen_precompile_source:自动生成一个.cpp文件,包含在.pro中指定的预编译头文件。
ordered:使用subdirs模板时,此选项指定应该按照目录列表的顺序处理它们。
precompile_header:可以在项目中使用预编译头文件的支持。
warn_on:编译器应该输出尽可能多的警告。如果也指定了warn_off,最后一个生效。
warn_off :编译器应该输出尽可能少的警告。
exceptions:启用异常支持。默认设置。
exceptions_off :禁用异常支持。
rtti :启用RTTI支持。默认情况下,使用编译器默认。
rtti_off:禁用RTTI支持。默认情况下,使用编译器默认。
stl:启用STL支持。默认情况下,使用编译器默认。
stl_off:禁用STL支持。默认情况下,使用编译器默认。
thread:启用线程支持。当CONFIG包括qt时启用,这是缺省设置。
c++11:启用c++11支持。如果编译器不支持c++11这个选项,没有影响。默认情况下,支持是禁用的。
c++14:启用c++14支持。如果编译器不支持c++14这个选项,没有影响。默认情况下,支持是禁用的。

例如:

CONFIG += c++11

SOURCES

指定项目中包含的所有 .cpp 源文件

例如:

SOURCES += \main.cpp \mainwindow.cpp

HEADERS

指定项目中包含的所有 .h 源文件

例如:

HEADERS += mainwindow.h

FORMS

指定项目中包含的所有 .ui 源文件

例如:

FORMS += mainwindow.ui

INCLUDEPATH

指定头文件的存储路径。

例如:

INCLUDEPATH +=D:\OpenCV2.0\vc2008\include\opencv

LIBS

添加动态库。

例如:

LIBS += D:\OpenCV2.0\vc2008\lib\cv200.lib
LIBS += D:\OpenCV2.0\vc2008\lib\cv200d.lib
LIBS +=D:\OpenCV2.0\vc2008\lib\cxcore200.lib
LIBS += D:\OpenCV2.0\vc2008\lib\cxcore200d.lib
LIBS += D:\OpenCV2.0\vc2008\lib\ml200.lib
LIBS += D:\OpenCV2.0\vc2008\lib\ml200d.lib
LIBS +=D:\OpenCV2.0\vc2008\lib\cvaux200.lib
LIBS +=D:\OpenCV2.0\vc2008\lib\cvaux200d.lib
LIBS += D:\OpenCV2.0\vc2008\lib\highgui200.lib
LIBS +=D:\OpenCV2.0\vc2008\lib\highgui200d.lib
LIBS += D:\OpenCV2.0\vc2008\lib\cxts200.lib
LIBS +=D:\OpenCV2.0\vc2008\lib\cxts200d.lib

3.总结

通过上面的学习我们基本可以掌握pro文件的一些写法,希望对大家有所帮助。

【Qt】 Pro工程管理文件介绍相关推荐

  1. QT.pro工程文件中判断宏定义是否存在

    在QT .pro文件中添加自定义了宏: DEFINES += ANDROID_TV 那么如果要判断该宏是否存在,可以这么写 xx.pro contains(DEFINES,ANDROID_TV) { ...

  2. Qt pro工程文件中判断宏定义是否存在

    在Qt工程文件中如果自定义了宏,那么在如果要判断该宏是否存在,可以这么写 xx.pro 添加宏定义: DEFINES += ANDROID_TV 判断宏定义是否存在 contains(DEFINES, ...

  3. QT PRO工程文件区分Debug和Release方法

    pro文件内设置根据debug/release以及32/64位分别输出到不同目录: pro文件中 添加如下代码: CONFIG += debug_and_release CONFIG(debug, d ...

  4. QT pro中加入文件拷贝方法

    类似VS的生成后事件,在pro文件中加入相应的拷贝命令,可在生成dll.lib文件后自动拷贝到相应的文件夹,示例如下: win32:CONFIG(release, debug | release) { ...

  5. Qt中的UI文件介绍

    UI文件是什么? .ui.ui.ui通常是指Qt设计师设计出来的界面文件的后缀,它本质上是一个标准XML格式的文本文件,需要通过uicuicuic工具将其转换为项目中可用的ui_∗.hui\_*.hu ...

  6. EDK环境搭建UEFI工程模块文件介绍

    一.UEFI开发环境配置 UEFI开发环境目前支持Windows,Linux,支持的平台也有很多如Intel, AMD,ARM等. 下面主要是介绍如何在windows环境下进行EDK开发. 1.获取E ...

  7. Qt的.pro工程文件语法学习

    我们编写Qt应用程序时,不管使用Qt Creator还是VS或者Eclipse,不管是Qt Widgets还是Qt Quick,总会发现有.pro文件,我们称.pro文件为Qt的工程管理文件,它存在的 ...

  8. QT Creater工程文件介绍

    Qt Creator工程管理 Qt Creator以工程项目的方式对源码进行管理 一个Qt Craetor工程包含不同类型的文件 .pro项目描述文件 .pro.user用户配置描述文件 .h头文件 ...

  9. 【Qt】Qt工程管理

    00. 目录 文章目录 00. 目录 01. 概述 02. 开发环境 03. QT Creator工程管理 04. Qt pro项目文件 05. pro文件的作用 06. Pro文件示例 07. 附录 ...

最新文章

  1. 美国国家创新体系的演化历程、特点及启示
  2. 【数据竞赛】百赛百试,十试九灵的特征筛选策略-Pearson Correlation
  3. 【线程】——线程的启动和中断
  4. HTML与CSS布局技巧总结,Html和CSS布局技巧总结(偶尔回顾回顾布局也是很有必要的)...
  5. input限制输入字符
  6. 一个奇怪的DNS服务器故障
  7. android 蓝牙播放器,Android 蓝牙音乐播放器
  8. Java环境变量配置(详细操作)
  9. C# WinForm拖拽文件+获取exe程序所在目录上上上级目录+复制单个文件并保存+复制某文件夹内文件到另一文件夹
  10. 3D视觉学习路线 + 路线规划
  11. Google Gson用法详解
  12. 神经网络计算棒怎么用,微软神经网络计算棒
  13. 流媒体服务器FFMPEG转码流摄像头取流
  14. Springboot 自定义全局异常处理
  15. Java当中的IO流(中)
  16. IP-guard和Ping32屏幕监控对比
  17. 无代码BPM平台的使用和推荐
  18. Wipro被评为印度和亚太及日本地区“2018年Citrix Cloud年度合作伙伴”
  19. 推荐三款换装变脸软件给你
  20. MySQL 国庆期间每类视频点赞量和转发量

热门文章

  1. minecraft_我们未来的机器人影响者:尝试使用Minecraft玩的Twitch流媒体机器人
  2. 程序员上了年纪可以做啥?
  3. Python模块和包的介绍(模块含义、用模块好处、模块分类、包和模块的创建)
  4. 微软独家采访Python之父! 大爆料13个问题,快来看看龟叔的怎么说!
  5. Python 发邮件(500, b‘Error: bad syntax‘)
  6. Celoria的板子(last update:20201017)
  7. 在计算机软件中 BIOS的中文意思是,BIOS是什么意思?电脑主板bios在哪里?
  8. bulls与cows的c语言程序设计,关于cows与bulls的跨学科观点:cow(母牛)
  9. 互动百科疑借“反垄断”进行炒作
  10. 安阳工学院c语言期末考试题库,安阳工学院期末C语言答案.doc