我想将我的 C++ 源代码添加到相应的elf
二进制文件中,并且我正在寻找执行此操作的最佳方法。(我正在使用我的代码的多个版本,并不是每个版本都应该提交到 svn 中)。
我可以在不elf
使用 bash>>
运算符破坏文件的情况下附加源代码吗?或者objcopy --add-section
有办法做到这一点?
顺便说一句,有没有更好的主意,只是从源代码文件中递归地确定grep
所有行以确定使用的所有源代码文件?#include
您可以使用命令行上的“-E”选项从大多数 C/C++ 编译器获取预处理器的输出,例如,
g++ -E my_file.c -o my_file_preproc.c
objcopy 是一个简单的选择,但我今天遇到了 ELF 资源编译器,它可能对你有用。它允许您在 ELF 文件中嵌入您想要的任何内容,甚至可以生成 C/C++ 代码以允许您添加它。因此,您甚至可以创建一个您的代码可以链接的库,该库将直接从可执行文件中打印出可执行文件的源代码。
这带来了另一个想法……您可以让可执行文件提供一个选项来打印所使用的方程式,而不仅仅是包含所有预处理的源代码。
如果您使用 gcc,您可以使用 -M 标志来获取包含所有包含文件列表的文件。它被写入使用 -o 指定的文件,如下所示:
gcc -M -c my_file.c -o list_of_included_files.txt