如何在llvm中链接elf静态库?

时间:2012-02-09 10:52:32

标签: gcc linker arm llvm elf

我有一个lib(* .a)文件,用elf格式的armcc创建。用llvm或gcc重新编译它是不可能的。 (这是为armcc编写的汇编程序)。

将它与gnu ld链接在Linux上运行正常,但我在使用llvm在Mac上执行此操作时遇到问题。

由于obj文件的内部格式不同,它会说“忽略文件......这不是被链接的体系结构”

有解决方法吗?一种将elf转换为Mach-O格式的方法?告诉llvm关于精灵?

由Agner Fog编写的x86 / 86-64有tool,但我正在寻找ARM工具。

1 个答案:

答案 0 :(得分:3)

binutils中有一个objcopy,它应该将二进制文件从一种格式转换为另一种格式。我想,您应该使用Linux和iOS BFD编译binutils。不幸的是,binutils对Mach-O的支持不完整(有一些关于ARM + objcopy + Mach-O的负面报道)。

另见:

其他转换方式是重新组装(从.a存档中反汇编每个.o文件,并使用与Mach-O兼容的汇编程序重组它)。