源和目标具有不同的EABI版本

时间:2016-02-03 10:20:40

标签: arm toolchain eabi

我尝试使用ARM工具链编译.so文件。但是我一直收到这个错误 -

  

错误:源对象具有EABI版本0,但目标具有EABI版本5

我无法改变工具链中的任何内容,因为我必须使用给定的。我以前从未见过这个错误。

我使用了这个编译器标志 -
 -Wl,--no-warn-mismatch
但不得不把它拿出去,因为它打破了很多其他的东西。

我使用的编译器标志是:
-fPIC -O2 -marm -march=armv7-a

1 个答案:

答案 0 :(得分:0)

使用as -meabi=5

我不会说我完全理解... :-),但是它解决了问题。

我试图做的事情失败了:

  • 与GNU AS组装,该GNU AS是从主服务器上编译的,配置为--target arm-elf的4de5434b694fc260d02610e8e7fec21b2923600a
  • 与Ubuntu 16.04 arm-linux-gnueabihf-gcc版本5.3.1链接

我认为EABI规范中提到的价值http://infocenter.arm.com/help/topic/com.arm.doc.ihi0044f/IHI0044F_aaelf.pdf

  

表4-2,特定于ARM的e_flags

     

这将屏蔽8位版本号,即该版本号所对应的ABI版本   ELF文件符合。该ABI是版本5。值为0表示未知   一致性。

尽管我不知道为什么完全弹出0。