C++ 文件版本信息

C++ 文件版本信息,c++,linux,shared-libraries,version,C++,Linux,Shared Libraries,Version,如何向文件中添加版本信息?这些文件通常是可执行文件、.so和.a文件 < P>注释:如果有任何一个支持这个,我使用C++、DPKG构建和Ubuntu 8.10。对于共享对象, < P>通过代码> -WL、SONAME、< /C> > GCC,或者 -SONAME> 到LD。 可执行文件和静态库本身没有版本信息,但如果您愿意,可以将其添加到文件名中。Linux可执行文件没有Windows那样的版本信息……我唯一能想到的方法是创建一个静态字符串,该字符串将由版本控制跟踪系统(如rcs)扩展,cvs、

如何向文件中添加版本信息?这些文件通常是可执行文件、.so和.a文件


< P>注释:如果有任何一个支持这个,我使用C++、DPKG构建和Ubuntu 8.10。对于共享对象,

< P>通过代码> -WL、SONAME、< /C> > GCC,或者<代码> -SONAME> <代码>到LD。
可执行文件和静态库本身没有版本信息,但如果您愿意,可以将其添加到文件名中。

Linux可执行文件没有Windows那样的版本信息……我唯一能想到的方法是创建一个静态字符串,该字符串将由版本控制跟踪系统(如rcs)扩展,cvs、svn、git,其中某个标识符根据签入代码的人展开,下面是使用的rcs标识符示例

static char *Id = "$Id$"; static char *Author = "$Author$"; 静态字符*Id=“$Id$”; 静态字符*Author=“$Author$”; 上述字符串在签入修订控制系统时,将在下次签出时展开

static char *Id = "Foo, v1.1, 2009-02-18, 13:13"; static char *Author = "foo"; static char*Id=“Foo,v1.11909-02-1813:13”; 静态字符*Author=“foo”; 并使用在二进制文件上运行的实用程序“”,“ident”在二进制文件中查找修订控制系统()标识符

希望这有帮助, 顺致敬意,
Tom。

这可能是另一个问题,但为什么他们没有任何版本信息?这是一个有趣的问题,我没有答案。@Fredrik:版本控制的理由是提供向后兼容性,这样一个与libfoo动态链接的二进制文件可以与更新版本的libfoo一起运行。对于二进制文件和静态库,上述参数是不相关的,因此没有人费心向对象格式添加任何类型的版本字段。
ident
曾经非常有用,但在分布式版本控制系统中嵌入
$Id$
字符串已变得不明智。它混淆了差异和融合。