将源代码添加到elf文件中

时间:2009-11-30 09:52:49

标签: c++ elf

我想将C ++源代码添加到相应的elf二进制文件中,我正在寻找最佳方法。 (我正在使用我的代码的几个版本,并不是每个版本都应该提交到svn)。

我是否可以在不使用bash的elf运算符破坏>>文件的情况下附加源代码? 或objcopy --add-section是一种方法吗?

顺便说一句,是否有更好的想法只是从源代码文件中递归grep所有#include行来确定所使用的所有源代码文件?

2 个答案:

答案 0 :(得分:2)

您可以通过在命令行上使用“-E”选项从大多数C / C ++编译器获取预处理器的输出,例如,

g++ -E my_file.c -o my_file_preproc.c

objcopy是一个简单的赌注,但我今天遇到了the ELF resource compiler,它可能对你有用。它允许您在ELF文件中嵌入您想要的任何内容,甚至可以生成C / C ++代码以允许您额外添加它。因此,您甚至可以创建一个代码可以链接的库,它将直接从可执行文件中打印出可执行文件的源代码。

这提出了另一个想法...而不是只包括所有预处理的源代码,您可以让可执行文件提供打印出使用的等式的选项。

答案 1 :(得分:1)

如果您正在使用gcc,则可以使用-M标志来获取包含所有包含文件列表的文件。它被写入使用-o指定的文件,如下所示:

gcc -M -c my_file.c -o list_of_included_files.txt