使用.pro自己控制编译

来源:互联网 发布:数据库证书有哪些 编辑:程序博客网 时间:2024/05/15 02:42

使用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-armDstPath = $$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
原创粉丝点击