使用.pro自己控制编译

使用Qt4.7编写跨平台的应用的时候,Qt默认采用的影子构建,但该影子构建还没有Qt5那么完善,比较死板,有些东西还不能支持。

为了能够自己控制想要的编译结果,如生成指定的文件夹、文件路径等等,使用.pro进行控制,尤其是相对路径的使用等。

将这个.pro文件赋值三份,分别为project_l.pro(linux)、project_a.pro(arm)、project_w.pro(windows),修改其中的SysCrtl变量,用以控制生成的最终版本。

#***begin***#
SysCtrl = 1 #1-win32,2-linux,3-arm
DstPath = $$PWD/../
RunPath = $${DstPath}run/
TmpPath = $${DstPath}tmp/
contains(SysCtrl,1){
FinalRunPath = $$join(RunPath,,,x86_win)
}else{
contains(SysCtrl,2){
FinalRunPath = $$join(RunPath,,,x86_linux)
}else{
contains(SysCtrl,3){
FinalRunPath = $$join(RunPath,,,arm)
}else{
error(CtrlVar set out range!)
}
}
}
FinalTmpPath = $${TmpPath}$$join(TARGET,,,_tmp)
CONFIG(release,debug|release){
FinalRunPath = $$join(FinalRunPath,,,_r)
FinalTmpPath = $$join(FinalTmpPath,,,_r)
}else{
CONFIG(debug,debug|release){
FinalRunPath = $$join(FinalRunPath,,,_d)
FinalTmpPath = $$join(FinalTmpPath,,,_d)
}else{
error(Compile debug_release out range!)
}
}
DESTDIR = $${FinalRunPath}
UI_DIR = $${FinalTmpPath}
RCC_DIR = $${FinalTmpPath}
MOC_DIR = $${FinalTmpPath}
OBJECTS_DIR = $${FinalTmpPath}
#****end****#

1、以上实现功能为使用相对路径生成目标路径、文件夹、文件。

2、以指定的命名方式生成编译结果。

3、控制不同平台的编译结果。

注意:上述配置尚未能解决生成的makefile在源文件中的问题,若有大神看到,能够补充的话就好了。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值