按条件编译版本
在我们开发的软件中,需要根据宏定义的不同,区分编译出不同的版本。例如,代码中有如下定义:
#if MSS_USER_VERSION == 1000… …
#elif MSS_USER_VERSION == 100… …
比较丑陋的方式,当然可以在代码中先定义好MSS_USER_VERSION ,然后再编译版本。但是我们通常采用自动化脚本编译,上述做法无法自动进行区分,需要人工干预。
我们希望在脚本执行时能通过设置不同的环境变量,从而自动编译出相应的执行文件。
以上述代码为例,我们可以修改qt的pro文件,增加如下定义即可:
DEFINES += MSS_USER_VERSION=$$(MSS_USER_VERSION)
脚本在编译前,先设置好环境变量,编译不同的版本,设置不同的环境变量值即可:
set MSS_USER_VERSION=1000
最后,如果只是单纯编译console程序,需要显示地在pro文件中说明,否则qmake缺省会按照window程序编译,导致在命令行中无法看到输入输出信息。
CONFIG += console