我想用类似于binutils的objcopy --redefine-syms工具的Mac来重命名目标文件(.o)中的符号。
我找不到arm-apple-darwin10-objcopy。我尝试了MacPorts的arm-elf-binutils端口,也尝试了一下otool和segedit,但没有太多成功。
有什么想法吗?
发布于 2011-06-20 14:27:57
听起来像是Agner Fog's 的工作。
我现在已经完成了在我之前的帖子中提到的对象文件转换器中对Mach-O文件的完全支持。您可以使用它来替代缺少的objcopy实用程序。
Objconv可用于以下目的:
在所有x86和x86-64平台上,在Mach-O、ELF、COFF和OMF格式之间转换目标文件和库/存档文件。
更改目标文件中的符号名称,使符号变弱,为符号添加别名。
跨平台构建、修改和转换静态库文件(*.a、*.lib)
转储目标文件和可执行文件
反汇编目标文件和可执行文件。非常好的反汇编程序。
发布于 2012-08-14 19:56:52
我知道我是在复活这篇文章,但是...
我突然也需要这样做,并且发现objcopy在OSX上不能工作,这让我有点震惊。但我认为可以使用ld来达到同样的效果:
ld -r input.o -o output.o -alias oldsymbol newsymbol -unexported_symbol oldsymbol这实际上只是在新名称下为符号创建了一个别名,并隐藏了旧名称。
我还没有机会做很多测试,但是使用nm查看输出文件显示它似乎在做正确的事情。
发布于 2012-04-27 09:11:40
objconv当前不适用于ARM,因此此选项不适用于iPhone。不过,在mac osx x86/x64上从elf到mach-o使用objconv应该没有问题。如果您找到了针对ARM的解决方案,请告诉我
https://stackoverflow.com/questions/3475854
复制相似问题