我想把我的C++源码添加到相应的 elf
二进制文件,我在寻找最好的方法。我的代码有几个版本,并不是每个版本都要提交到svn中)。
我是否可以在不破坏源代码的情况下,直接将源代码附加到 elf
文件,使用bash的 >>
或者是 objcopy --add-section
有什么办法可以做到这一点?
对了,还有没有更好的办法,只用 grep
全部 #include
行递归地从源码文件中确定使用的所有源码文件?
如果你使用的是gcc,你可以使用-M标志来获得一个包含所有包含文件的文件。它被写入到用-o指定的文件中,像这样。
gcc -M -c my_file.c -o list_of_included_files.txt
你可以通过命令行上的"-E "选项 从大多数CC++编译器中获得预处理器的输出,例如:
g++ -E my_file.c -o my_file_preproc.c
objcopy是一个简单的选择,但我遇到了 ELF资源编译器 今天,它可能对你有用。 它允许你在ELF文件中嵌入任何你想要的东西,甚至会生成CC++代码,允许你额外添加它。 因此,你甚至可以创建一个库,你的代码可以与之链接,直接从可执行文件中打印出可执行文件的源代码。
这带来了另一个想法......你可以让可执行文件提供一个选项来打印所使用的方程式,而不是仅仅包含所有预处理的源代码。