在程序中获取编译时SVN的版本号

程序中一般会加入程序的版本信息,用“-v”来查看。

有时候还会加入编译时间,这个比较好实现,使用__TIME__和__DATE__宏就可以了,程序的大版本号一般都是手动写的。

出于某种需要,我希望在程序中获取到编译时svn的版本号,查了写资料,有说用svn prop来做的,也有说用svn hook来做的,我觉得这个太复杂,而且是在每次提交都做修改,没必要。

于是乎,我想到也用宏来做。

gcc里可以用“-D”来定义宏,用它来定义一个宏,值为svn版本号就好了。

-DSVN=xxxx

xxxx怎么获取呢?svn info里就有了,弄出来就行了

svn info | grep Revision | cut -d " " -f 2

然后

-DSVN=·svn info | grep Revision | cut -d " " -f 2·

把它加到Makefile.am里去,搞定。

LU分解

今天在博客园上瞎逛,看到这篇文章

这是这个博客的第一篇文章,题目是“LU分解”。突然觉得这个名词好熟悉,好像在哪里看过,仔细看了下文章,原来LU分解是矩阵的一种分解方法。

这个好像是在线性代数还是在计算方法中学过的,居然都忘了。我这书念的,真是……

算下来,我上了15年学了(不算幼儿园),学了多少东西,又忘了多少东西?像矩阵之类的数学知识,也许我以后永远也不会再遇到了,也有可能在某些时候它能帮上我的大忙。

怎么对待这样的东西呢?

福尔摩斯从来不记跟破案无关的东西,除了他的小提琴。他认为人的记忆是有限的,人一旦记住了某些东西,必然会有某些东西因此而被遗忘。

困惑中……