示例1:
#TEMPLATE:模板变量,告诉qmake为该应用程序生成哪种makefile
#subdirs:特殊的模板
TEMPLATE = subdirs
#使用subdirs模板时,此选项指定应该安装目录列表顺序处理它们.
CONFIG += ordered
SUBDIRS += \
3rdParty \
project
QT .pro文件解析(秒懂)_qt pro文件详解-CSDN博客
QT工程pro文件TEMPLATE变量说明_qt pro文件中的 template config += ordered-CSDN博客
Qt 之 pro 配置详解 - maxiongying - 博客园 (cnblogs.com)
示例2:
Qt-Advanced-Docking-System:Advanced Docking System for Qt - GitCode
#指定项目中使用Qt的模块
QT += core gui widgets
#启用c++11支持.如果编译器不支持c++11这个选项,那该句无效
CONFIG += c++11
#$$PWD:文件当前目录
#$$PWD/../../build/debug 文件当前目录的上一层的上一层/build/debug
CONFIG(debug, debug|release) {
ROUTDIR = $$PWD/../../build/debug
} else {
ROUTDIR = $$PWD/../../build/release
}
#创建一个用于构建库的Makefile
TEMPLATE = lib
#指定在何处放置目标文件
DESTDIR = $$ROUTDIR
#指定目标文件的名称.
TARGET = qtadvanceddocking
DEFINES += ADS_SHARED_EXPORT
windows {
# MinGW
*-g++* {
QMAKE_CXXFLAGS += -Wall -Wextra -pedantic
}
# MSVC
*-msvc* {
QMAKE_CXXFLAGS += /utf-8
}
}
#指定资源文件(qrc)的名词
RESOURCES += ads.qrc
HEADERS += \
ads_globals.h \
DockAreaWidget.h \
DockAreaTabBar.h \
DockContainerWidget.h \
DockManager.h \
DockWidget.h \
DockWidgetTab.h \
DockingStateReader.h \
FloatingDockContainer.h \
FloatingDragPreview.h \
DockOverlay.h \
DockSplitter.h \
DockAreaTitleBar_p.h \
DockAreaTitleBar.h \
ElidingLabel.h \
IconProvider.h \
DockComponentsFactory.h \
DockFocusController.h
SOURCES += \
ads_globals.cpp \
DockAreaWidget.cpp \
DockAreaTabBar.cpp \
DockContainerWidget.cpp \
DockManager.cpp \
DockWidget.cpp \
DockingStateReader.cpp \
DockWidgetTab.cpp \
FloatingDockContainer.cpp \
FloatingDragPreview.cpp \
DockOverlay.cpp \
DockSplitter.cpp \
DockAreaTitleBar.cpp \
ElidingLabel.cpp \
IconProvider.cpp \
DockComponentsFactory.cpp \
DockFocusController.cpp
unix:!macx {
HEADERS += linux/FloatingWidgetTitleBar.h
SOURCES += linux/FloatingWidgetTitleBar.cpp
QT += x11extras
LIBS += -lxcb
}
利用Qt的pro文件中DEFINES实现条件宏_qt defines-CSDN博客
示例3:
QT笔记——QtPropertyBrowser的使用-CSDN博客
#指定项目中使用Qt的模块
QT += core gui widgets
CONFIG(debug, debug|release) {
ROUTDIR = $$PWD/../../build/debug
} else {
ROUTDIR = $$PWD/../../build/release
}
DESTDIR = $$ROUTDIR
#指定目标文件的名称
TARGET = QtPropertyBrowser
#创建一个用于构建库的Makefile
TEMPLATE = lib
#启用c++11支持
CONFIG += C++11
DEFINES += QTPROPERTYBROWSER_LIBRARY
SOURCES += \
qtbuttonpropertybrowser.cpp \
qteditorfactory.cpp \
qtgroupboxpropertybrowser.cpp \
qtpropertybrowser.cpp \
qtpropertybrowserutils.cpp \
qtpropertymanager.cpp \
qttreepropertybrowser.cpp \
qtvariantproperty.cpp
HEADERS +=\
qtpropertybrowser_global.h \
qtbuttonpropertybrowser.h \
qteditorfactory.h \
qtgroupboxpropertybrowser.h \
qtpropertybrowser.h \
qtpropertybrowserutils_p.h \
qtpropertymanager.h \
qttreepropertybrowser.h \
qtvariantproperty.h
RESOURCES += $$PWD/qtpropertybrowser.qrc
unix {
target.path = /usr/lib
INSTALLS += target
}
示例4:
greaterThan(QT_MAJOR_VERSION,4):QT+=widgets意思_qt greaterthan-CSDN博客
QT pro文件的一种通用配置 - onewayheaven - 博客园 (cnblogs.com)
Qt5中qDebug信息不输出的解决方法_qt5的qdebug没有输出-CSDN博客
Qt构建中DEPENDPATH和INCLUDEPATH区别_includepath dependpath-CSDN博客
#指定项目中使用Qt的模块
QT += core gui sql xml
QT += xlsx svg
#QT主版本大于4(当前使用的是Qt5或更高版本的话),需要添加widgets模块
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
#创建一个用于构建应用程序的Makefile(默认)
TEMPLATE = app
#指定目标文件的名称
TARGET = Chart
CONFIG += c++11
#为debug版本生成的文件增加d的后缀
CONFIG(debug, debug|release) {
TARGET = $$join(TARGET,,,d)
ROUTDIR = $$PWD/../build/debug
} else {
TARGET = $$join(TARGET,,,)
ROUTDIR = $$PWD/../build/release
}
DESTDIR = $${ROUTDIR}
#当Qt的某些功能被标记为过时的,此时编译器会发出警告
DEFINES += QT_DEPRECATED_WARNINGS
# share.pri
#当前文件的上一层的share文件夹
sharePWD = $${PWD}/../share
include($${sharePWD}/share.pri)
#指定编译项目时应该被搜索的#include目录
INCLUDEPATH += $${sharePWD}
CONFIG += qtsingleapplication logBusiness Unit msgNotify
CONFIG += asmCrashReport
# navigation
#当前目录下的navigation/navigation.pri
include($${PWD}/navigation/navigation.pri)
INCLUDEPATH += $${PWD}/navigation
SOURCES += \
main.cpp \
MainWindow.cpp
HEADERS += \
MainWindow.h
FORMS += \
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
#第三方库加载
LIBS += -L$${ROUTDIR} -lqtadvanceddocking #-lQtPropertyBrowser
#DEPENDPATH和INCLUDEPATH都是用于指定头文件搜索路径的变量
#INCLUDEPATH用于指定头文件的搜索路径,告诉编译器在哪里查找头文件
#DEPENDPATH用于指定项目中的源代码所依赖的头文件的搜索路径
INCLUDEPATH += $$PWD/../3rdParty/
DEPENDPATH += $$PWD/../3rdParty/
INCLUDEPATH += $$PWD/../3rdParty/QtDock/
DEPENDPATH += $$PWD/../3rdParty/QtDock/
# INCLUDEPATH += $$PWD/../3rdParty/QtPropertyBrowser/
# DEPENDPATH += $$PWD/../3rdParty/QtPropertyBrowser/
# log Multithreading
#DEFINES += ELPP_NO_DEFAULT_LOG_FILE
DEFINES += ELPP_THREAD_SAFE
#指定应用程序资源的名词.很少需要进行修改
RC_FILE += app.qrc
RESOURCES += res.qrc