Qt Creator中的.pro文件的详解

简述:

 

在QT中,有一个工具qmake可以生成一个makefile文件,它是由.pro文件生成而来的。.pro是qmake的工程文件(project);.pri文件可以把 *.pro 文件内的一部分单独放到一个 *.pri 文件内(include),然后包含进来;.prf文件(feature),和.pri文件类似,也是被包含进.pro文件,只是更隐秘,如CONFIG+=QT;.prl文件(link),主要和生成与使用静态库密切相关。

 

1、注释

 

 

以“#”开始,到这一行结束。

快捷键:Ctrl + /

 

2、CONFIG

 

指定编译器选项和项目配置,值由qmake内部识别并具有特殊意义。可以指定是生成debug模式还是release模式,还是都生成。也可以用来打开编译器警告或者关闭。还可以用来配置要Qt加载库

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

 

 

选项说明
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这个选项,没有影响。默认情况下,支持是禁用的。
console只用于app模板 应用程序是一个windows的控制台应用程序
windows只用于app模板 应用程序是一个windows的窗口应用程序
testcase 
depend_includepath 
dll只用于”lib”模板,库是一个共享库(dll)
staticlib只用于“lib”模板,库一个静态库
plugin只用于“lib”模板,库是一个插件,这会使dll选项生效

当使用debug和release选项时(Windows下默认的),该项目将被处理三次:一次生成一个”meta”Makefile,另外两次生成Makefile.Debug和Makefile.Release。

 

3、QT

 

指定项目中使用Qt的模块。默认情况下,QT包含core和gui,以确保标准的GUI应用程序无需进一步的配置就可以构建。如果想建立一个不包含Qt GUI模块的项目,可以使用“ -=”操作符。

下面一行将构建一个很小的Qt项目

 

 

QT -= gui # 仅仅使用core模块
 
 

如果要创建一个界面,里面用到XML及网络相关的类,那么需要包含如下模块

 

QT += core gui widgets xml network
 
 

 

 

4、TARGET

 

指定目标文件的名称。默认情况下包含的项目文件的基本名称。

 

TARGET = LidarPlus
 
 

上面项目会生成一个可执行文件,Windows下为LidarPlus.exe,Unix下为LidarPlus

 

 

5、TEMPLATE

 

模板变量告诉qmake为这个应用程序生成哪种makefile,可供使用的选项如下:

 

选项说明
app创建一个用于构建应用程序的Makefile(默认)
lib创建一个用于构建库的Makefile
subdirs创建一个用于构建目标子目录的Makefile,子目录使用SUBDIRS变量指定
aux创建一个不建任何东西的Makefile。
vcapp仅适用于Windows。创建一个Visual Studio应用程序项目
vclib仅适用于Windows。创建一个Visual Studio库项目。

 

6、SOURCES

 

指定项目中的所有源文件。

 

SOURCES += main.cpp\
 
 
        mainwindow.cpp \
 
 
    serialtab.cpp \
 
 
    connectorsdlg.cpp \
 
 
    serialdataset.cpp \
 
 
    serialotherset.cpp \
 
 

 

 

7、HEADERS

 

指定项目中的所有头文件。

 

HEADERS  += mainwindow.h \
 
 
    serialtab.h \
 
 
    connectorsdlg.h \
 
 
    serialdataset.h \
 
 
    serialotherset.h \
 
 

 

 

8、FROMS

 

指定项目中的UI文件,这些文件在编译前被uic处理。所有的构建这些UI文件所需的依赖、头文件和源文件都会自动被添加到项目中。

 

    FORMS += \
 
 
        $$PWD/LogConsoleWidget.ui
 
 

 

 

 

9、 DEFINES

 

qmake添加这个变量的值作为编译器C预处理器宏(-D选项)

例如:

 

DEFINES += USE_MY_CONNECT
 
 

然后在代码中就可以使用:

 

 

#ifdef USE_MY_CONNECT
 
 
    // TODO
 
 
#else
 
 
    // TODO
 
 
#endif
 
 

 

 

 

 

10、RESOURCES

 

 

 

指定资源文件 (qrc) 的名称

 

RESOURCES += Resource/resource.qrc
 
 

 

 

 

11、DEPENDPATH

 

 

程序编译时依赖的相关路径.

 

DEPENDPATH += .
 
 

 

 

 

12、INCLUDEPATH

 

 

头文件的包含路径,即指定编译项目时应该被搜索的#include目录。如果路径包含空格,需要使用引号包含。

 

INCLUDEPATH = c:/include
 
 
INCLUDEPATH += "C:/extra headers"
 
 

 

 

 

13、LIBS

 

 

指定链接到项目中的库列表。如果使用Unix -l (library) 和 -L (library path) 标志,在Windows上qmake正确处理库(也就是说,将库的完整路径传递给链接器),库必须存在,qmake会寻找-l指定的库所在的目录。如果路径包含空格,需要使用引号包含路径。

 

win32:LIBS += c:/mylibs/math.lib
 
 
unix:LIBS += -L/usr/local/lib -lmath
 
 

 

 

 

14、DESTDIR

 

 

指定在何处放置目标文件。

 

CONFIG(release):DESTDIR = $$PWD/../bin
 
 
CONFIG(debug, debug|release):DESTDIR = $$PWD/../bin
 
 

 

 

 

15、MOC_DIR

 

 

 

指定来自moc的所有中间文件放置的目录(含Q_OBJECT宏的头文件转换成标准.h文件的存放目录)

 

 

16、OBJECTS_DIR

 

 

 

指定所有中间文件.o(.obj)放置的目录。

 

 

17、RCC_DIR

 

 

 

指定Qt资源编译器输出文件的目录(.qrc文件转换成qrc_*.h文件的存放目录)。

 

 

18、UI_DIR

 

 

 

指定来自uic的所有中间文件放置的目录(.ui文件转化成ui_*.h文件的存放目录)。

 

unix:UI_DIR = ../myproject/ui
 
 
win32:UI_DIR = c:/myproject/ui
 
 

 

 

 

19、RC_FILE

 

 

 

指定应用程序资源文件的名称。这个变量的值通常是由qmake或qmake.conf处理,很少需要进行修改。

pro文件里,访问环境变量的用法是:$(varName)

pro文件里,访问Qt配置参数的用法:$$[varName]

 

RC_FILE += $$PWD/UrgBenri.rc
 
 

 

 

 

20、RC_ICONS

 

 

 

仅适用于Windows,指定的图标应该包含在一个生成的.rc文件里。如果RC_FILE 和RES_FILE变量都没有设置这才可利用。

 

RC_ICONS = myapp.ico 
 
 

 

 

 

21、CODECFORSRC

 

 

 

源文件编码方式。

CODECFORSRC = GBK

 

 

22、平台相关处理

 

 

 

根据qmake所运行的平台来使用相应的作用域来进行处理。

 

win32:RC_FILE += $$PWD/UrgBenri.rc
 
 
macx:ICON = $$PWD/icons/UrgBenri.icns
 
 
 
win32 {
 
 
    CONFIG += embed_manifest_exe
 
 
}
 
 

 

 

Qt4.1.3之后的版本提供了CONFIG选项来提供内嵌manifest文件的功能,embed_manifest_dll和embed_manifest_exe, 用法是将下面的选项加入pro文件, 如下:

 

CONFIG += embed_manifest_exe
 
 

 

默认情况下embed_manifest_dll已经开启。

 

 

23、系统变量

 

 

QMAKE_TARGET_COMPANY:指定项目目标的公司名称,仅适用于Windows

QMAKE_TARGET_PRODUCT:指定项目目标的产品名称,仅适用于Windows

QMAKE_TARGET_DESCRIPTION:指定项目目标的描述信息,仅适用于Windows

QMAKE_TARGET_COPYRIGHT:指定项目目标的版权信息,仅适用于Windows

PACKAGE_DOMAIN:

PACKAGE_VERSION:

RC_CODEPAGE:指定应该被包含进一个.rc文件中的代码页,仅适用于Windows

RC_LANG:指定应该被包含进一个.rc文件中的语言,仅适用于Windows

RC_ICONS:指定应该被包含进一个.rc文件中的图标,仅适用于Windows

VERSION:指定程序版本号

 

BUILD_NUMBER:

APP_REVISION:

APP_VERSION_DATE:

APP_VERSION:

 

注意:QMAKE_TARGET_COMPANYQMAKE_TARGET_DESCRIPTIONQMAKE_TARGET_COPYRIGHT、QMAKE_TARGET_PRODUCTRC_CODEPAGERC_LANG均仅适用于Windows, 而且只有在VERSIONRC_ICONS 变量被设置,并且RC_FILE和 RES_FILE变量没有被设置的情况下生效

 

 

 

http://www.cnblogs.com/lyggqm/p/6288463.html

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值