按条件编译版本

按条件编译版本

在我们开发的软件中,需要根据宏定义的不同,区分编译出不同的版本。例如,代码中有如下定义:

#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

Comments are closed.