在我的构建链中,我需要这样做:
objcopy -I binary -O $BFDNAME -B $BFDARCH <this> <that>
为了将二进制文件转换为库形式。因为我希望其他人能够使用它,所以我需要知道如何在他们运行构建时从他们的工具链中获取 $BFDNAME 和 $BFDARCH。我可以通过对我已经构建的文件运行 objdump -f 来在本地获取值,但是有没有更好的方法不会让我编译一次性文件只是为了获取配置值?
最佳答案
感谢您指出这一点,regularfry!您的回答帮助我找到了另一种无需指定架构即可工作的解决方案:
ld -r -b binary -o data.o data.txt
在我的系统(Ubuntu Linux,binutils 2.22)上,objcopy 和 ld 方法都生成相同的目标文件。
所有功劳归于:
http://stupefydeveloper.blogspot.de/2008/08/cc-embed-binary-data-into-elf.html
关于gcc - 确定 GNU binutils 的目标和架构的 "correct"方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5381254/