【Qt】pro文件参数

版权声明:本文为博主原创文章,转载注明出处 https://blog.csdn.net/u010875635/article/details/73550774

        Qt的pro文件并不仅仅只是记录文件列表,还有很多的参数,这些参数可以实现一些自动化操作,减少很多工作量,最终生成makefile来编译程序。常见功能有多平台库分别导入,顺序编译多个依赖Project等等,以下做详细说明。

        1、Additional arguments:

                QtCreator的Project属性中,build step有一个Additional arguments属性,可以设置一个参数,这个参数仅使用这个Qt-Kit时生效,例如:myPlatform=x86.


                然后在pro中就可以使用这个参数了,注意,pro文件中引用变量要使用两个$,这个与shell不同,例如

$$PWD
$$myPlatform 

                参数可以直接引用,也可以做判断。

               

if(equals($$myPlatform,x86)){ 
    //x86 平台需要做的操作
}


        2、常见参数

                TARGET: 目标名称,例如myApp。

                TEMPLATE: 项目模板,常见有lib(编译成library)、app(编译成程式)、subdirs(为主项目,包含子项目)等,示例:TEMPLATE=lib,subdirs示例如下:

TEMPLATE=subdirs
SUBDIRS += DeviceCtlSubDir/libDeviceCtl.pro \
           DeviceCtlSubDir/DeviceCtl.pro \
           DeviceCtlSubDir/DeviceCtl_Command.pro

                CONFIG: 配置参数,可配置多个参数,所以使用+=,不要使用=。ordered参数与subdirs配合使用,表示按照排列顺序编译,默认带有app_bundle和qt这两个参数,所以不需要则可以-=,例如下面的表示使用console以及C++11特性(纯C++,不含qt组件),不使用qt以及app。在编译library时,还有两个参数shared(生成动态库)、shared_and_static build_all (同时生成动态库合静态库,没有单独的静态库)

CONFIG += console c++11
CONFIG -= app_bundle
CONFIG -= qt

                INCLUDEPATH: 头文件目录,使用+=,例如:

INCLUDEPATH += $$PWD/lib/include

                LIBS: 库文件,使用+=,如下:

LIBS += $$PWD/lib/lib

               DESTDIR:  目标文件文件夹,例如app,lib等文件。

               OBJECTS_DIR: obj文件文件夹

               MOC_DIR: 生成moc文件所在文件夹

               UI_DIR: ui文件生成所在文件夹

               RCC_DIR: RCC文件生成所在文件夹

              

DESTDIR = $$myINSTALL_DIR/bin
OBJECTS_DIR = $$myINSTALL_DIR/obj
MOC_DIR = $$myINSTALL_DIR/moc
UI_DIR = $$myINSTALL_DIR/ui
RCC_DIR = $$myINSTALL_DIR/rcc

        3、引用其它pro文件参数

                include (../DentalPrintManager.pro),然后使用$$引用即可。             

        4、执行shell命令

                 在run qmake时执行,调用system(shell command命令)。

system(mkdir -p $$BasicStructureLibOutputIncPath)


        5、输出信息

                使用message()输出消息,例如:message("BasicStructure $$myPlatform Build!")


        6、Qt参数

                Qt自身组件,例如gui、network等,以下示例:

QT       += core network
QT       -= gui


        7、其它参数

                SOURCES、HEADERS、FORMS、RESOURCES表示项目中添加的一些文件

猜你喜欢

转载自blog.csdn.net/u010875635/article/details/73550774