QT 工程PRO文件

Qt开发中如何正确的编写.pro文件及详细说明

本文先来介绍一下项目管理文件(.pro文件)。项目管理文件用于记录项目的一些设置,以及项目包含文件的组织管理。
后缀为“.pro”的文件是项目的管理文件,文件名就是项目的名称。

QT工程中.pro文件,可以作为QT Creator的索引文件打开工程;它还可以作为MakeFile的母文件,通过使用qmake生成MakeFile文件。那么.pro文件怎么编写呢。

一、注释

程序代码文件中一定是有注释的,(.pro)文件中的注释是从#开始,到行尾结束。

二、配置项说明

1、模板变量告诉qmake为应用程序生成哪一种makefile

下面是可供使用的选择:
TEMPLATE = app
app:建立一个应用程序的makefile,这个是默认值,若模块项未指定,将默认使用此项;
lib:建立一个库的makefile;
vcapp:建立一个应用程序的VisualStudio项目文件;
vclib:建立一个库的VisualStudio项目文件;
subdirs:这是一个特殊的模板,可以创建一个可进入特定目录并为一个项目文件生成makefile,此makfile可以调用make;

2、其他配置项说明

  1. TARGET = :这个配置项用来指定最后生成的目标应用程序的名称。
  2. CONFIG += : 用来告诉qmake关于应用程序的配置信息,使用+=表示在现有的配置上添加,这样会更安全。比如,CONFIG += qt warn_on release 其具体的意义为:
  3. qt :告诉qmake此程序是使用qt来连编的。即qmake在连接、为编译添加所需包含路径时会考虑qt的库;
  4. warn_on :告诉qmake要将编译器设置为输出警告信息形式;
  5. release :告诉qmake应用程序必须被连编为一个可发布的应用程序。开发过程中,也可以使用debug
  6. UIC_DIR += :用来指定uic命令,将.ui文件转化为ui_*.h文件存放的目录。
  7. RCC_DIR += :用来指定rcc命令,将.qrc文件转换成qrc_*.h文件存放的目录。
  8. MOC_DIR += :用来指定moc命令,将含有Q_OBJECT的头文件转换成标准.h文件存放的目录。
  9. OBJECTS_DIR += :用来指定目标文件obj的存放目录。
  10. DEPENDPATH += : 用来指定工程的依赖路径。
  11. INCLUDEPATH += : 用来指定工程所需要的头文件。
  12. CODECFORSRC += : 用来指定源文件的编码格式。
  13. FORMS += :用来指定工程中的ui文件。
  14. HEADERS += : 用来指定工程中所包含的头文件。
  15. SOURCES += :用来指定工程中包含的源文件。
  16. RESOURCES += :用来指定工程中所包含的资源文件。
  17. LIBS += :用来指定引入的lib文件的路径,一般会在前面加下参数-L,根据不同的版本可以分为两种形式:
  18. Release: LIBS += -L folder Path //release版本引入的lib文件
  19. Debug: LIBS += -L folder Path //debug版本引入的lib文件
  20. DEFINES += : 用来定义编译选项。
  21. DESTDIR += :用来指定目标的生成路径。
  22. 跨平台处理信息也要写在.pro文件中。 其示例如下:
win32{

}

unix{

}

三、创建MakeFile

qmake非常方便、快捷,是一个轻量级的makefile生成工具,在使用该指令前要正确地编写.pro文件。

当你已经创建好你的项目文件,生成Makefile就很容易了,你所要做的就是先到你所生成的项目文件那里然后输入:

Makefile可以像这样由“.pro”文件生成:

    qmake -o Makefile hello.pro

对于VisualStudio的用户,qmake也可以生成“.dsp”文件,例如:

    qmake -tvcapp -o hello.dsp hello.pro

四、一个PRO文件实例

++++++++++++++++++++++++一个PRO文件实例++++++++++++++++++++++++++++++++++++++++

++++++++++++++++++++++++一个PRO文件实例++++++++++++++++++++++++++++++++++++++++

TEMPLATE = app     #模块配置
LANGUAGE = C++   #C++语言

CONFIG += qt warn_on debug release

#引入的lib文件,用于引入动态链接库
LIBS += qaxcontainer.lib

#头文件包含路径
INCLUDEPATH += ../../qtcompnent/qtchklisten/inc \
../../qtcompnent/qtclearfile/inc \
../../validator/inc/validerrcode \
../../qtcompnent/qtdir/inc \
../inc \
../../utillib/inc/xmlapi \
../../utillib/inc/util
../../xercesc \
../../qtcompnent/qteditor/inc \
../../qtcompnent/qtfunreview/inc \
../../qtcompnent/qttable/inc \
../../qtcompnent/qtversion/inc \
../../qtcompnent/qtini/inc \
../../icdtool/icdservices/inc \
../../icdtool/dataset/inc \
../../icdtool/doi/inc \
../../icdtool/reportcontrol/inc \
../../icdtool/GSEconctrol/inc \
../../icdtool/inputs/inc \
../../icdtool/SMVconctrol/inc \
../../icdtool/logcontrol/inc \
../../scdpreview/inc/scdpreviewtoollib \
../../scdpreview/form \
../../icdtool/sclcontrol/inc \
../../icdtool/log/inc \
../../icdtool/settingcontrol/inc \
../../qtcompnent/qteditor/inc \
../../qtcompnent/qttreeview/inc \
../../qtcompnent/qttabwidget/inc \
../../communication/inc \
../../qtcompnent/qtabout/inc \
../iedmanage/inc \
../ldmanage/inc \
../foriecrun/inc \
../../qtcompnent/validset/inc

#工程中包含的头文件
HEADERS += ../inc/exportstable.h \
 ../inc/maintabwidget.h \
 ../inc/outputtab.h \
 ../inc/strutil.h \
 ../inc/treeeditview.h \
 ../inc/MainForm.h \
 ../inc/recenfileini.h \
 ../inc/ExportCIDFunction.h

#工程中包含的源文件
SOURCES += ../src/main.cpp \
 ../src/exportstable.cpp \
 ../src/maintabwidget.cpp \
 ../src/outputtab.cpp \
 ../src/treeeditview.cpp \
 ../src/MainForm.cpp \
 ../src/recenfileini.cpp \
 ../src/ExportCIDFunction.cpp

#工程中包含的.ui设计文件
FORMS = ../form/scdmainform.ui \
 ../form/exportiedform.ui \
 ../form/Exportsedform.ui \
 ../form/Importsedform.ui \
 ../form/formiminputs.ui

#图像文件

IMAGES = images/substation.png \
 images/communication.png \
 images/autocom.png \
 images/reportcfg.png \
 images/comcfg.png \
 images/filetrans.png \
 images/review.png \
 images/setting.png

#工程中包含的资源文件
RESOURCES   = Scintilla.qrc

#CONFIG -= release
CONFIG -= debug


RC_FILE = scdtool.rc

 
BINLIB = ../../bin \
../../xercesc/lib

UI_HEADERS_DIR = ../inc  # .ui文件转会为**.h   存放的目录
UI_SOURCES_DIR = ../src  # .ui文件转会为**.cpp 存放的目录
QMAKE_LIBDIR = $${BINLIB}

release {
TARGET = scdtool       #指定生成的应用程序名
OBJECTS_DIR = ../../obj/scdtool/release #指定目标文件(obj)的存放目录
}
debug {
TARGET = scdtool_d     #指定生成的应用程序名
OBJECTS_DIR = ../../obj/scdtool/debug #指定目标文件(obj)的存放目录
}

MOC_DIR = $${OBJECTS_DIR}
DESTDIR = ../../bin    #指定生成的应用程序放置的目录

SOURCES、HEADERS、FORMS 记录了项目中包含的源程序文件、头文件和窗体文件(.ui 文件)的名称。这些文件列表是 Qt Creator 自动添加到项目管理文件里面的,用户不需要手动修改。当添加一个文件到项目,或从项目里删除一个文件时,项目管理文件里的条目会自动修改。

参考:

https://zhuanlan.zhihu.com/p/110782759

https://www.cnblogs.com/wanghuixi/p/9572863.html

https://www.cnblogs.com/xupeidong/p/9476957.html

https://blog.csdn.net/wang13342322203/article/details/82843402

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值