Linux:如何将版本信息嵌入共享库和二进制文件?

前端之家收集整理的这篇文章主要介绍了Linux:如何将版本信息嵌入共享库和二进制文件?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
Linux上,有没有办法将版本信息嵌入到ELF二进制文件中?我想在编译时嵌入这些信息,以便以后可以使用脚本将其解压缩.一种hackish方式是植入可以使用strings命令提取的东西.是否有更传统的方法,类似于Visual Studio植入Windows DLL的版本信息(DLL属性中的注释版本选项卡)?

解决方法

如果使用cvs或subversion,一种方法是在源文件中专门设置一个特殊的id字符串.然后向cvs或svn添加预提交挂钩,以便在提交更改时使用新版本的文件更新该特殊变量.然后,在构建二进制文件时,您可以使用ident来提取该信息.例如:

将这样的内容添加到您的cpp文件中:

static char fileid[] = "$Id: fname.cc,v 1.124 2010/07/21 06:38:45 author Exp $";

在程序上运行ident(可以通过安装rcs找到)应该显示有关其中包含id字符串的文件的信息.

ident program
program:
    $Id: fname.cc,v 1.124 2010/07/21 06:38:45 author Exp $

注意正如人们在评论中提到的,这种技术是陈旧的.让源代码控制系统自动更改源代码非常丑陋,而且源代码管理已经改进,因为cvs是唯一的选择,这意味着您可以找到更好的方法来实现相同的目标.

原文链接:https://www.f2er.com/linux/394668.html

猜你在找的Linux相关文章