Arm 源和目标具有不同的EABI版本
我正在尝试使用ARM工具链编译一个.so文件。然而,我不断得到这个错误- 错误:源对象具有EABI版本0,但目标对象具有EABI版本5 我不能改变工具链中的任何东西,因为我必须使用给定的工具链。我以前从未见过这种错误 我使用了这个编译器标志-Arm 源和目标具有不同的EABI版本,arm,toolchain,eabi,Arm,Toolchain,Eabi,我正在尝试使用ARM工具链编译一个.so文件。然而,我不断得到这个错误- 错误:源对象具有EABI版本0,但目标对象具有EABI版本5 我不能改变工具链中的任何东西,因为我必须使用给定的工具链。我以前从未见过这种错误 我使用了这个编译器标志- -Wl,--无警告不匹配 但是我不得不把它拿出来,因为它打碎了很多其他东西 我使用的编译器标志是: -fPIC-O2-marm-march=armv7-a使用as-meabi=5 我不会说我完全理解它…:-)但它解决了问题 我试图做的事情失败了: 使用G
-Wl,--无警告不匹配
但是我不得不把它拿出来,因为它打碎了很多其他东西 我使用的编译器标志是:
-fPIC-O2-marm-march=armv7-a
使用as-meabi=5
我不会说我完全理解它…:-)但它解决了问题
我试图做的事情失败了:
- 使用GNU进行组装,如在4de5434b694fc260d02610e8e7fec21b2923600a处从主机编译的,配置有
--目标arm elf
- 链接Ubuntu 16.04
5.3.1版arm linux gnueabihf gcc
虽然我根本不知道为什么会出现0。你没有说哪个工具链或目标操作系统?对于GCC,您有
-mabi=name
,其中name是apcs gnu、atpcs、aapcs、aapcs linux或iwmmxt中的一个。虽然听起来您可能没有ELF文件或其他文件。尝试file test.o
查看您在编译阶段创建的文件类型。我认为aapcs是最新的版本(至少它不是零版本)。谷歌搜索一下可能会有所帮助。是的,闻起来确实像是你试图将OABI和EABI对象链接在一起(刚刚尝试过,它肯定会产生完全相同的错误)。对此该怎么办主要取决于你没有包括在问题中的所有细节。。。