一尘不染

gcc可以在ELF二进制文件中添加版本信息吗?

linux

我的意思是gcc是否可以将某些源代码版本的infor作为部分或类似内容插入到ELF二进制文件中。我不想更改我的源文件,但是在Makefile中使用gcc选项添加了一些信息。


阅读 505

收藏
2020-06-03

共1个答案

一尘不染

您可以将版本信息发送到文本文件中,然后将该文本文件转换为目标文件,然后将其静态链接到可执行文件中。

第一步很简单,但是您必须编写一些代码:脚本或类似的东西,以您喜欢的纯文本文件格式书写版本信息。然后version.o从version.txt,用写makefile规则,产生的发言权objcopy命令。现在,您将拥有一个目标文件,其中定义了两个有用的符号:文本版本信息的开头和结尾。将生成的对象添加到可执行文件中,您将可以通过两种方式访问​​版本:通过strings在二进制文件上运行,或通过在应用程序中编写代码以打印版本字符串(您需要声明开始和结束)符号作为某些头文件中的变量)。

2020-06-03