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处理,很少需要进行修改。

 

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

 

你可能感兴趣的:(Qt)