分享

在Makefile动态生成程序版本号的方法

 娱天乐 2014-07-30

 

 

一,动态生成svn版本号的方法:

 

[c-sharp] view plaincopy
  1. GET_SVN_VERSION_CMD = LANG=C;LC_ALL=C;export LC_ALL;svn info | grep "Last Changed Rev: " | sed -e "s/Last Changed Rev: "//g  
  2. $(appName) : $(ALLDEPOBJS)  
  3. force:  
  4. svn_version.cpp: force  
  5. @$(SHELL) -ec 'echo "int g_nSvnVersion="`$(GET_SVN_VERSION_CMD)`";" > ./svn_version.cpp'  
 

 

在Makefile加入以上代码,并将svn_version.o放在$(ALLDEPOBJS)一起编译即可在源文件中通过extern int g_nSvnVersion;得到svn的版本号。

 

二,动态生成发布版本号/操作系统名称/发布日期的方法:

1,在命令行执行export RELEASE_VERSION_FLAGS="-DRELEASEVERSION=///"1.0.3///" -DBUILDOS=///"`uname`///" -DBUILDDATE=///"`date +%y%m%d`///"",更方便的,可以将该命令保存到.bashrc环境变量文件里面

2,在Makefile加入$(RELEASE_VERSION_FLAGS) 参数编译

3,在源文件中通过以下方法获取版本号:

  1. std::string strReleaseVersion = "1.0.2";  
  2. #ifdef RELEASEVERSION  
  3. strReleaseVersion = RELEASEVERSION;  
  4. #endif  
 

4,在源文件中通过以下方法获取操作系统名称:

  1. std::string strBuildOS = "Linux";  
  2. #ifdef BUILDOS  
  3. strBuildOS = BUILDOS;  
  4. #endif  
 

5,在源文件中通过以下方法获取发布日期:

  1. std::string strBuildDate = "110501";  
  2. #ifdef BUILDDATE  
  3. strBuildOS = BUILDDATE;  
  4. #endif  
 

 

 


 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多