【Qt】 Pro工程管理文件介绍
一般在新建一个工程后,在目录中都有一个*.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工程管理文件介绍相关推荐
- QT.pro工程文件中判断宏定义是否存在
在QT .pro文件中添加自定义了宏: DEFINES += ANDROID_TV 那么如果要判断该宏是否存在,可以这么写 xx.pro contains(DEFINES,ANDROID_TV) { ...
- Qt pro工程文件中判断宏定义是否存在
在Qt工程文件中如果自定义了宏,那么在如果要判断该宏是否存在,可以这么写 xx.pro 添加宏定义: DEFINES += ANDROID_TV 判断宏定义是否存在 contains(DEFINES, ...
- QT PRO工程文件区分Debug和Release方法
pro文件内设置根据debug/release以及32/64位分别输出到不同目录: pro文件中 添加如下代码: CONFIG += debug_and_release CONFIG(debug, d ...
- QT pro中加入文件拷贝方法
类似VS的生成后事件,在pro文件中加入相应的拷贝命令,可在生成dll.lib文件后自动拷贝到相应的文件夹,示例如下: win32:CONFIG(release, debug | release) { ...
- Qt中的UI文件介绍
UI文件是什么? .ui.ui.ui通常是指Qt设计师设计出来的界面文件的后缀,它本质上是一个标准XML格式的文本文件,需要通过uicuicuic工具将其转换为项目中可用的ui_∗.hui\_*.hu ...
- EDK环境搭建UEFI工程模块文件介绍
一.UEFI开发环境配置 UEFI开发环境目前支持Windows,Linux,支持的平台也有很多如Intel, AMD,ARM等. 下面主要是介绍如何在windows环境下进行EDK开发. 1.获取E ...
- Qt的.pro工程文件语法学习
我们编写Qt应用程序时,不管使用Qt Creator还是VS或者Eclipse,不管是Qt Widgets还是Qt Quick,总会发现有.pro文件,我们称.pro文件为Qt的工程管理文件,它存在的 ...
- QT Creater工程文件介绍
Qt Creator工程管理 Qt Creator以工程项目的方式对源码进行管理 一个Qt Craetor工程包含不同类型的文件 .pro项目描述文件 .pro.user用户配置描述文件 .h头文件 ...
- 【Qt】Qt工程管理
00. 目录 文章目录 00. 目录 01. 概述 02. 开发环境 03. QT Creator工程管理 04. Qt pro项目文件 05. pro文件的作用 06. Pro文件示例 07. 附录 ...
最新文章
- 美国国家创新体系的演化历程、特点及启示
- 【数据竞赛】百赛百试,十试九灵的特征筛选策略-Pearson Correlation
- 【线程】——线程的启动和中断
- HTML与CSS布局技巧总结,Html和CSS布局技巧总结(偶尔回顾回顾布局也是很有必要的)...
- input限制输入字符
- 一个奇怪的DNS服务器故障
- android 蓝牙播放器,Android 蓝牙音乐播放器
- Java环境变量配置(详细操作)
- C# WinForm拖拽文件+获取exe程序所在目录上上上级目录+复制单个文件并保存+复制某文件夹内文件到另一文件夹
- 3D视觉学习路线 + 路线规划
- Google Gson用法详解
- 神经网络计算棒怎么用,微软神经网络计算棒
- 流媒体服务器FFMPEG转码流摄像头取流
- Springboot 自定义全局异常处理
- Java当中的IO流(中)
- IP-guard和Ping32屏幕监控对比
- 无代码BPM平台的使用和推荐
- Wipro被评为印度和亚太及日本地区“2018年Citrix Cloud年度合作伙伴”
- 推荐三款换装变脸软件给你
- MySQL 国庆期间每类视频点赞量和转发量
热门文章
- minecraft_我们未来的机器人影响者:尝试使用Minecraft玩的Twitch流媒体机器人
- 程序员上了年纪可以做啥?
- Python模块和包的介绍(模块含义、用模块好处、模块分类、包和模块的创建)
- 微软独家采访Python之父! 大爆料13个问题,快来看看龟叔的怎么说!
- Python 发邮件(500, b‘Error: bad syntax‘)
- Celoria的板子(last update:20201017)
- 在计算机软件中 BIOS的中文意思是,BIOS是什么意思?电脑主板bios在哪里?
- bulls与cows的c语言程序设计,关于cows与bulls的跨学科观点:cow(母牛)
- 互动百科疑借“反垄断”进行炒作
- 安阳工学院c语言期末考试题库,安阳工学院期末C语言答案.doc