当前位置: 首页 > article >正文

QT自动获取编译日期与git commit ID

       有时候我们希望软件版本号中携带日期,而每次手动修改日期比较麻烦,可以利用__DATE__来自动获取编译时的日期。另外软件也可以自动获取git 的commit ID,方便代码回溯和对齐。

1. 自动获取编译日期

       直接上代码。需要注意的是,当日期不满10时,例如9月4日,__DATE__字符中会有两个空格:"Sep  4 2024",在Sep和4之间有两个空格,因此需要先将多个空格合并为一个空格。

QString Mytool::getBuildDate() 
{
	const QString strMonth[12] = {"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"};
    QString buildDate;
    QString date = __DATE__;
    int year, month, day;
    int i = 0;

    date = date.replace("  ", " ");

    buildDate = buildDate.append(date.section(" ", 2, 2));

    for(i = 0; i < 12; i++)
    {
        if(date.contains(strMonth[i]))
        {
            break;
        }
    }
    month = i + 1;

    buildDate.append(QString::number(month, 10).rightJustified(2, '0'));
    buildDate.append(date.section(" ", 1, 1).rightJustified(2, '0'));

    return buildDate;
}

       使用方式: 

qDebug() << "Date:" << MyTool:getBuildData();

输出为Data:20240904

2. 获取Git Commit ID

       工程使用了qmake,首先在工程的.pro文件中加入以下代码,第一行的../.git表示git仓库文件所在目录。

exists (../.git) {
	COMMIT_ID = $$system(git rev-parse --short HEAD)
	GIT_COMMIT_ID = "$${COMMIT_ID}"
}else{
	GIT_COMMIT_ID = debugver
}

DEFINES += GIT_COMMIT_ID=\"\\\"$$GIT_COMMIT_ID\\\"\"

       代码文件里获取git commit id:

QString MyTool::getGitShortCommitId(void)
{
	QString commitID = GIT_COMMIT_ID;
	
	return commitID;
}


http://www.kler.cn/a/294977.html

相关文章:

  • 【HarmonyOS】PixelMap转化为Uri
  • 使用R语言survminer获取生存分析高风险和低风险的最佳截断值cut-off
  • 密码学知识点整理二:常见的加密算法
  • IDEA加载通义灵码插件及使用指南
  • 在vscode中开发运行uni-app项目
  • JavaScript 实现文本转语音功能
  • 【C++11】深入理解与应用右值引用
  • python可执行文件exe
  • Openharmony 下载到rk3568实现横屏
  • 案例-上海某科技公司:监控易7.0重塑服务器监控模式
  • 简单梳理一个历史脉络
  • urllib与requests爬虫简介
  • 【Nginx系列】Nginx中rewrite模块
  • 牛客(除2!)
  • 设计模式 19 观察者模式
  • 【AIGC】AI编程工具合集及其特点介绍
  • 1-18 平滑处理——高斯滤波 opencv树莓派4B 入门系列笔记
  • 【LabVIEW学习篇 - 17】:人机交互界面设计01
  • 以后写代码都是AI自动写了,Cursor+Claude-3.5-Sonnet,Karpathy 点赞的 AI 代码神器。如何使用详细教程
  • 解决异步任务上下文丢失问题
  • 【Python】6.基础语法(6)文件
  • DataLoader使用
  • [数据集][目标检测]电动车头盔佩戴检测数据集VOC+YOLO格式4235张5类别
  • 计算机网络与Internet应用
  • OpenCV与Matplotlib:灰度图像
  • 漫谈设计模式 [20]:解释器模式