将源代码添加到精灵文件中

问题描述 投票:4回答:2

我想把我的C++源码添加到相应的 elf 二进制文件,我在寻找最好的方法。我的代码有几个版本,并不是每个版本都要提交到svn中)。

我是否可以在不破坏源代码的情况下,直接将源代码附加到 elf 文件,使用bash的 >> 或者是 objcopy --add-section 有什么办法可以做到这一点?

对了,还有没有更好的办法,只用 grep全部 #include 行递归地从源码文件中确定使用的所有源码文件?

c++ elf
2个回答
1
投票

如果你使用的是gcc,你可以使用-M标志来获得一个包含所有包含文件的文件。它被写入到用-o指定的文件中,像这样。

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

2
投票

你可以通过命令行上的"-E "选项 从大多数CC++编译器中获得预处理器的输出,例如:

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

objcopy是一个简单的选择,但我遇到了 ELF资源编译器 今天,它可能对你有用。 它允许你在ELF文件中嵌入任何你想要的东西,甚至会生成CC++代码,允许你额外添加它。 因此,你甚至可以创建一个库,你的代码可以与之链接,直接从可执行文件中打印出可执行文件的源代码。

这带来了另一个想法......你可以让可执行文件提供一个选项来打印所使用的方程式,而不是仅仅包含所有预处理的源代码。

© www.soinside.com 2019 - 2024. All rights reserved.