You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用QMake实现Windows下多编译选项的项目多版本自动化构建

基于QMake的Windows多版本自动化构建实现方案

1. 项目配置文件(.pro)修改

核心实现版本参数识别、宏定义注入、产物命名区分和编译目录隔离,避免不同版本编译缓存串扰:

# 识别qmake传入的版本参数
CONFIG(trial) {
    # 注入试用版预编译宏,用于裁剪专业版代码
    DEFINES += APP_TRIAL_VERSION
    # 统一版本后缀,所有产物自动继承
    VERSION_SUFFIX = _trial
    # 独立构建输出目录,隔离中间文件和最终产物
    DESTDIR = $$PWD/build_trial
    OBJECTS_DIR = $$DESTDIR/obj
    MOC_DIR = $$DESTDIR/moc
    RCC_DIR = $$DESTDIR/rcc
    UI_DIR = $$DESTDIR/ui
} else {
    # 专业版默认配置
    DEFINES += APP_PRO_VERSION
    VERSION_SUFFIX = _pro
    DESTDIR = $$PWD/build_pro
    OBJECTS_DIR = $$DESTDIR/obj
    MOC_DIR = $$DESTDIR/moc
    RCC_DIR = $$DESTDIR/rcc
    UI_DIR = $$DESTDIR/ui
}

# 目标产物自动加上版本后缀,原有打包规则无需修改命名逻辑
TARGET = YourAppName$$VERSION_SUFFIX

# 原有代码归档、portable压缩包、安装包生成规则直接保留即可

代码中使用预编译宏裁剪专业版功能示例:

// 专业版专属功能,试用版编译时会完全剔除
#ifdef APP_PRO_VERSION
void exportProfessionalReport() {
    // 专业版业务逻辑
}
#endif

2. Windows自动化多轮构建脚本

编写批处理脚本一次性完成两个版本的全流程构建,无需手动切换参数:

@echo off
setlocal

:: 替换为你本地Qt编译套件对应的路径
set QMAKE_PATH=C:\Qt\5.15.2\msvc2019_64\bin\qmake.exe
:: MSVC套件用jom实现多线程编译,MinGW套件替换为mingw32-make.exe路径
set MAKE_TOOL=C:\Qt\Tools\QtCreator\bin\jom.exe
:: 编译套件spec参数,MinGW替换为win32-g++
set SPEC=win32-msvc

:: 构建专业版
echo ============== 开始构建专业版 ==============
if exist build_pro rd /s /q build_pro
mkdir build_pro
cd build_pro
%QMAKE_PATH% ..\你的项目名.pro CONFIG+=pro -spec %SPEC%
%MAKE_TOOL% clean
%MAKE_TOOL% all
%MAKE_TOOL% install
cd ..

:: 构建试用版
echo ============== 开始构建试用版 ==============
if exist build_trial rd /s /q build_trial
mkdir build_trial
cd build_trial
%QMAKE_PATH% ..\你的项目名.pro CONFIG+=trial -spec %SPEC%
%MAKE_TOOL% clean
%MAKE_TOOL% all
%MAKE_TOOL% install
cd ..

echo ============== 所有版本构建完成 ==============
pause

注意事项

  • 原有打包规则只要是基于TARGET变量命名产物,会自动带上版本后缀,无需额外修改
  • 必须为不同版本配置独立的中间文件目录,否则qmake会复用已编译的缓存文件,导致预编译宏不生效
  • 若使用NSIS、Inno Setup等工具生成安装包,可直接在打包脚本中根据构建目录区分产物命名,或读取qmake的VERSION_SUFFIX变量拼接名称

内容的提问来源于stack exchange,提问作者Jeroen3

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 08:24:07