我想将我的C++源代码添加到相应的elf
二进制文件中,并且我正在寻找实现此目的的最佳方法。(我使用了几个版本的代码,并不是每个版本都应该提交到svn中)。
我可以使用bash的>>
操作符在不破坏elf
文件的情况下添加源代码吗?或者objcopy --add-section
是实现这一目标的一种方法吗?
顺便说一下,有没有一个更好的想法,就是递归地从源代码文件中grep
所有#include
行,以确定所有使用的源代码文件?
发布于 2009-11-30 10:04:08
如果您使用的是gcc,则可以使用-M标志来获取包含所有包含文件的列表的文件。它被写入到用-o指定的文件中,如下所示:
gcc -M -c my_file.c -o list_of_included_files.txt
发布于 2010-01-18 21:45:42
您可以通过在命令行上使用"-E“选项从大多数C/C++编译器获得预处理器的输出,例如,
g++ -E my_file.c -o my_file_preproc.c
objcopy是一个简单的赌注,但我今天遇到了the ELF resource compiler,它可能会对你有用。它允许你在ELF文件中嵌入任何你想要的东西,甚至会生成C/C++代码来允许你对其进行额外的修改。因此,您甚至可以创建一个库,您的代码可以链接到该库,该库将直接从可执行文件打印出可执行文件的源代码。
这将带来另一个idea...rather,而不只是包含所有预处理的源代码,您可以让可执行文件提供一个选项,以打印出所使用的公式。
https://stackoverflow.com/questions/1818846
复制相似问题