qt工程文件中根据编译环境进行不同操作

        我们使用qt进行工程编译时,经常会因为环境不同,而导致编译错误的情况,引用头文件路径不对,链接库文件不存在,这样或那样的问题。

        原来qt工程文件也可以像c++语言一样,通过类似宏定义预处理命令来对不同的环境进行区分处理,非常的方便实用,下面介绍几个常用的环境判断方法,供大家参考

是否为32位系统:

contains(QT_ARCH, i386) {
        message("32-bit")
    } else {
        message("64-bit")
    }

判断CPU架构环境:

contains(QT_ARCH, arm64){
        message("arm64") 
}else{

        contains(TARGET_ARCH, x86_64){
                 message("x86")

        }

        else{

                

                contains(TARGET_ARCH, mips64){
                         message("mips64")

                }

        }
}


是否linux/windows :

win32{
        message("windows") 
}
unix{
        message("linux") 
}

是否debug / release:

CONFIG(debug, debug|release){  

        message("debug") 
}else{  

        message("release") 
}

组合使用:

CONFIG(debug, debug|release){

    message("debug") 
    win32{

            message("windows") 
    }
    unix{
            contains(QT_ARCH, arm64){
                    message("arm64")
            }else{
                    message("x86")
            }
    }
}else{   

         message("release") 
          win32{
                message("windows") 
        }
        unix{
               message("linux") 
        }
}

QT_ARCH针对qt5及其以上版本有效,对之前的版本是无效的,针对之前的版本,请使用下面的方法:

greaterThan(QT_MAJOR_VERSION, 4) {
    TARGET_ARCH=$${QT_ARCH}
} else {
    TARGET_ARCH=$${QMAKE_HOST.arch}
}
#Secondly, use TARGET_ARCH to check.
contains(TARGET_ARCH, x86_64) {
    ARCHITECTURE = x64
} else {
    ARCHITECTURE = x86
}

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

steve_cui

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值