确定 GNU binutils 的目标和体系结构的“正确”方法是什么?

reg*_*fry 5 gcc gnu binutils

在我的构建链中,我需要这样做:

objcopy -I binary -O $BFDNAME -B $BFDARCH <this> <that>
Run Code Online (Sandbox Code Playgroud)

为了将二进制文件转换为库形式。因为我希望其他人能够使用它,所以我需要知道在运行构建时如何从他们的工具链中获取 $BFDNAME 和 $BFDARCH。我可以通过对我已经构建的文件运行 objdump -f 来在本地获取值,但是有没有更好的方法,不会让我仅仅为了获取配置值而编译废弃文件?

das*_*sup 4

感谢您指出这一点,regularfry!您的回答帮助我找到了另一个无需指定架构即可工作的解决方案:

ld -r -b binary -o data.o data.txt
Run Code Online (Sandbox Code Playgroud)

在我的系统(Ubuntu Linux,binutils 2.22)上,objcopy 和 ld 方法都会生成相同的目标文件。

所有功劳都归于: http://stupefydeveloper.blogspot.de/2008/08/cc-embed-binary-data-into-elf.html