在Makefile动态生成程序版本号的方法.01.GET_SVN_VERSION_CMD=LANG=C;LC_ALL=C;exportLC_ALL;svninfo|grepLastChangedRev:|sed-es/LastChangedRev://g02.$(appName):$(ALLDEPOBJS)03.force:04.svn_version.cpp:force05.@$(SHELL)-ec'echointg_nSvnVersion=`$(GET_SVN_VERSION_CMD)`;./svn_version.cpp'在Makefile加入以上代码,并将svn_version.o放在$(ALLDEPOBJS)一起编译即可在源文件中通过externintg_nSvnVersion;得到svn的版本号。二,动态生成发布版本号/操作系统名称/发布日期的方法:1,在命令行执行exportRELEASE_VERSION_FLAGS=-DRELEASEVERSION=///1.0.3///-DBUILDOS=///`uname`///-DBUILDDATE=///`date+%y%m%d`///,更方便的,可以将该命令保存到.bashrc环境变量文件里面2,在Makefile加入$(RELEASE_VERSION_FLAGS)参数编译3,在源文件中通过以下方法获取版本号:01.std::stringstrReleaseVersion=1.0.2;02.#ifdefRELEASEVERSION03.strReleaseVersion=RELEASEVERSION;04.#endif4,在源文件中通过以下方法获取操作系统名称:01.std::stringstrBuildOS=Linux;02.#ifdefBUILDOS03.strBuildOS=BUILDOS;04.#endif5,在源文件中通过以下方法获取发布日期:01.std::stringstrBuildDate=110501;02.#ifdefBUILDDATE03.strBuildOS=BUILDDATE;04.#endif