Qt 通用pro配置

提供一个通用的Qt pro工程配置

#-------------------------------------------------
#
# PS:应将此配置放置在pro文件的最后, 否则可能会不起作用
# PS:示例中的 contains 可以替换为 equals, 行后面的 { 一定不要换行,否则不能识别
#
# 以下配置为程序输出目录配置模板, 根据需要自行修改
# 其中, 默认认为整个工程使用SubDir工程, 且子工程为非SubDir工程.
# 如有不同, 请根据情况进行修改
#
#
# 主要就是配置 TARGET(目标名字) 以及 DESTDIR(目标目录), DLLDESTDIR(动态库自动复制目录)
# 将TARGET在debug状况下加上d后缀
# 将DESTDIR设置到bin目录下,而在目标为动态库时修改为放入lib目录下
# 将DLLDESTDIR设置为bin目录, 用于将动态库的自动发布复制
#
# 配置后, release以及debug目录将会出现在目标路径的output文件夹下
# 并且会将子工程的ui生成文件放入子工程相应的ui目录下
#
#-------------------------------------------------

#设置UI文件目录
UI_DIR = ./ui

CONFIG(debug, debug|release) {
  #设置debug配置下编译生成文件的路径
  TARGET = $$join(TARGET,,,d)   #为debug版本生成的文件增加d的后缀

  contains(TEMPLATE, "lib") {
    DESTDIR = ../output/debug/lib        #将库放在lib文件夹下
    DLLDESTDIR = ../output/debug/bin     #将动态库自动拷贝至bin目录下
  } else {
    DESTDIR = ../output/debug/bin        #将应用程序放在bin目录下
  }
  OBJECTS_DIR = ./debug/obj     #将生成的对象文件放在专门的obj文件夹下
  MOC_DIR = ./debug/moc         #将QT自动生成的对象放在moc文件夹下
} else {
  #设置release配置下编译生成文件的路径

  contains(TEMPLATE, "lib") {
    DESTDIR = ../output/release/lib        #将库放在lib文件夹下
    DLLDESTDIR = ../output/release/bin     #将动态库自动拷贝至bin目录下
  } else {
    DESTDIR = ../output/release/bin        #将应用程序放在bin目录下
  }
  OBJECTS_DIR = ./release/obj   #将生成的对象文件放在专门的obj文件夹下
  MOC_DIR = ./release/moc       #将QT自动生成的对象放在moc文件夹下
}

CONFIG(debug, debug | release){
equals(TEMPLATE, "app"){
    DESTDIR = $$PWD/../build/debug/bin
}

equals(TEMPLATE, "lib"){
    DESTDIR = $$PWD/../build/debug/lib
    DLLDESTDIR = $$PWD/../build/debug/bin
}
}

CONFIG(release, debug | release){
equals(TEMPLATE, "app"){
    DESTDIR = $$PWD/../build/release/bin
}

equals(TEMPLATE, "lib"){
    DESTDIR = $$PWD/../build/release/lib
    DLLDESTDIR = $$PWD/../build/release/bin
}
}

#//指定目标文件的输出目录
//32位
contains(QT_ARCH, i386){
    CONFIG(release, release | debug){
        DESTDIR = $$PWD/bin/x86/release
    } else {
        DESTDIR = $$PWD/bin/x86/debug
    }
}
//64位
contains(QT_ARCH, x86_64){
    CONFIG(release, release | debug){
        DESTDIR = $$PWD/bin/x64/release
    } else {
        DESTDIR = $$PWD/bin/x64/debug
    }
}

#//指定中间文件的生成路径
MOC_DIR = $$PWD/temp/$$TARGET/moc
RCC_DIR = $$PWD/temp/$$TARGET/rcc
UI_DIR = $$PWD/temp/$$TARGET/ui
OBJECTS_DIR = $$PWD/temp/$$TARGET/obj
BUILD_DIR = $$PWD/../bin/build		//编译路径
BIN_DIR = $$PWD/../bin				//二进制文件输出路径
TARGET = MediaManagerTest			//目标文件名

CONFIG(debug, debug|release){
    OBJECTS_DIR = "$$BUILD_DIR/debug/$$TARGET/obj"
    RCC_DIR = "$$BUILD_DIR/debug/$$TARGET/rcc"
    MOC_DIR = "$$BUILD_DIR/debug/$$TARGET/moc"
    UI_DIR = "$$BUILD_DIR/debug/$$TARGET/ui"
    DESTDIR = "$$BIN_DIR/debug"
}

CONFIG(release, debug|release){
    OBJECTS_DIR = "$$BUILD_DIR/release/$$TARGET/obj"
    RCC_DIR = "$$BUILD_DIR/release/$$TARGET/rcc"
    MOC_DIR = "$$BUILD_DIR/release/$$TARGET/moc"
    UI_DIR = "$$BUILD_DIR/release/$$TARGET/ui"
    DESTDIR = "$$BIN_DIR/release"
}

QT工程文件的常见参数

请添加图片描述

  1. 如果指定 TEMPLATElib模板,且未指定 CONFIG为静态库或者动态库,则默认生成动态库
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值