我正在尝试使用 ARM 工具链编译 .so 文件。但是我不断收到这个错误-
错误:源对象的 EABI 版本为 0,但目标对象的 EABI 版本为 5
我无法更改工具链中的任何内容,因为我必须使用给定的工具链。我以前从未见过这个错误。
我使用了这个编译器标志 -
-Wl,--no-warn-mismatch
但不得不把它拿出来,因为它破坏了很多其他东西。
我使用的编译器标志是:
-fPIC -O2 -marm -march=armv7-a
Use as -meabi=5
我不会声称我完全理解它......:-)但它解决了问题。
我试图做的事情失败了:
- 使用从 4de5434b694fc260d02610e8e7fec21b2923600a 配置的 master 编译的 GNU AS 进行汇编
--target arm-elf
- 与 Ubuntu 16.04 的链接
arm-linux-gnueabihf-gcc
版本5.3.1
我认为 EABI 规范中提到了该值,并对此做了一些说明http://infocenter.arm.com/help/topic/com.arm.doc.ihi0044f/IHI0044F_aaelf.pdf 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 。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)