如何在程序中得到SVN的版本号[转]
2008-01-19 20:58
260 查看
如何在程序中得到SVN的版本号 http://www.linuxfans.org/nuke/modules.php?name=News&file=article&sid=3349 贴出者为 william.fu
william.fu写著 '软件的版本号中有一部分是Build号,下面介绍如何在程序中使用SVN库中的版本好做为Build号的方法。
基本思路:源代码中使用GCC指定的宏,make的时候给GCC指定宏BUILDNUMBER,build脚本里面给makefile传递变量定义来定义一个宏.
给make传递变量定义的方法:make "VAR=value"
GCC中进行宏定义的方法:gcc -Dmacro=define
脚 本中获得SVN库的最新版本号的方法:svn up|grep revision|awk -F' ' '{ print $3 }'|awk -F'.' '{print $1}'。有时候svn up会输出很多信息,用grep 过滤掉其他信息,只处理包含版本号的那一行。
方法一:
build.sh :
svn_ver=`svn up|grep revision|awk -F' ' '{ print $3 }'|awk -F'.' '{print $1}'`
make "DEFINES=-DBUILDNUMBER=$svn_ver" all
makefile :
$(COMPILER) $(DEFINES) ...
ver.c :
...
printf("build version is:%d",BUILDNUMBER);
...
版本号是这样传递到源代码中的:build shell->makefile->gcc->source code
运行./build.sh,程序中将会得到最新的SVN的版本号。
同事想到更加直接方法:在build脚本里面直接将#define BUILDNUMBER +版本号输出到version.h中,这样程序中便可以直接使用BUILDNUMBER这个宏了。
方法二:
build.sh :
svn_ver=`svn up|grep revision|awk -F' ' '{ print $3 }'|awk -F'.' '{print $1}'`
echo "#define BUILDNUMBER $svn_ver" >version.h
make all
ver.c :
#include "version.h"
...
printf("build version is:%d",BUILDNUMBER);
...
william.fu写著 '软件的版本号中有一部分是Build号,下面介绍如何在程序中使用SVN库中的版本好做为Build号的方法。
基本思路:源代码中使用GCC指定的宏,make的时候给GCC指定宏BUILDNUMBER,build脚本里面给makefile传递变量定义来定义一个宏.
给make传递变量定义的方法:make "VAR=value"
GCC中进行宏定义的方法:gcc -Dmacro=define
脚 本中获得SVN库的最新版本号的方法:svn up|grep revision|awk -F' ' '{ print $3 }'|awk -F'.' '{print $1}'。有时候svn up会输出很多信息,用grep 过滤掉其他信息,只处理包含版本号的那一行。
方法一:
build.sh :
svn_ver=`svn up|grep revision|awk -F' ' '{ print $3 }'|awk -F'.' '{print $1}'`
make "DEFINES=-DBUILDNUMBER=$svn_ver" all
makefile :
$(COMPILER) $(DEFINES) ...
ver.c :
...
printf("build version is:%d",BUILDNUMBER);
...
版本号是这样传递到源代码中的:build shell->makefile->gcc->source code
运行./build.sh,程序中将会得到最新的SVN的版本号。
同事想到更加直接方法:在build脚本里面直接将#define BUILDNUMBER +版本号输出到version.h中,这样程序中便可以直接使用BUILDNUMBER这个宏了。
方法二:
build.sh :
svn_ver=`svn up|grep revision|awk -F' ' '{ print $3 }'|awk -F'.' '{print $1}'`
echo "#define BUILDNUMBER $svn_ver" >version.h
make all
ver.c :
#include "version.h"
...
printf("build version is:%d",BUILDNUMBER);
...
相关文章推荐
- 如何用程序得到windows的名称和版本号
- BuildNumber: 在程序中得到SVN的版本号
- 紧急求助国内外大侠:如何编写程序得到正在运行的ppt的当前页码和运行时间?
- 如何得到其他程序焦点变化和启动的通知
- VC6、 BCB6 如何设置程序版本号?
- 如何在ant脚本中获取svn版本号
- 如何得到当前程序执行的堆栈
- Windows Mobile下如何得到程序的当前运行的目录
- SVN如何管理项目的版本号,如1.0.1.xx,修改到1.1.1.xx?
- 得到当前程序的版本号
- 防止按下回车键退出程序 与 在EDITBOX 敲入回车键后,如何得到此回车键的消息的方法:
- 如何在ant脚本中获得svn版本号
- 如何 获得 自身程序 的 版本号 ???? 急!!!!!!!!!!!!
- erlang调用外部程序如何得到其退出状态
- 在程序内动态获取svn版本号
- Java中如何得到程序的执行时间
- android 如何获取一个程序的当前版本号
- 如何将svn上checkout下来的android 程序由java project转成android project in Eclipse
- Delphi2010如何获取程序内部自身版本号?
- 如何在unix的c程序中得到system()调用的返回值