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

如何配置Qt .pro文件在部署安装时生成含VERSION参数的版本文件

方案1:直接通过.pro配置生成并安装版本文件(优先推荐)

不需要额外脚本,全靠qmake逻辑实现:

  • 在你的.pro文件末尾添加以下配置即可:
# 1. 定义版本文件信息,若需要文件名带版本号可改为 $$OUT_PWD/version_$$VERSION.txt
VERSION_FILE = $$OUT_PWD/version.txt

# 2. 生成版本文件,写入VERSION值;若只需空文件可将commands改为 @touch $$VERSION_FILE
version_file.target = $$VERSION_FILE
version_file.commands = @echo $$VERSION > $$VERSION_FILE
version_file.CONFIG += phony no_link
QMAKE_EXTRA_TARGETS += version_file
PRE_TARGETDEPS += $$VERSION_FILE

# 3. 定义安装规则,指定版本文件安装到系统的路径(可自行修改)
version_file_install.files = $$VERSION_FILE
version_file_install.path = /etc/myapp/
INSTALLS += version_file_install
  • 效果:编译构建时会自动生成包含VERSION值的版本文件,opkg安装时会自动部署到你指定的/etc/myapp/version.txt路径,其他程序直接读取该文件内容即可拿到版本号。
方案2:通过postInst脚本实现

如果更偏好使用安装后脚本,按以下步骤操作:

  1. 新建postinst模板文件postinst.in,放到项目根目录,内容如下:
#!/bin/sh
# 自动替换@VERSION@占位符为.pro中的VERSION值
echo "@VERSION@" > /etc/myapp/version.txt
# 可在此添加其他postInst需要执行的逻辑
exit 0
  1. 在.pro文件末尾添加以下配置,实现占位符替换和postinst脚本挂载:
# 替换postinst模板中的占位符
POSTINST_TPL = $$PWD/postinst.in
POSTINST_OUT = $$OUT_PWD/postinst
QMAKE_SUBSTITUTES += POSTINST_TPL

# 指定ipk包的postinst脚本路径(不同ipk构建工具配置略有差异,通用场景均可识别)
package.postinst = $$POSTINST_OUT
  • 效果:构建ipk包时会自动将@VERSION@替换为.pro中定义的VERSION值,opkg安装完成后自动执行脚本生成版本文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 10:09:08