Tina编译报错:/usr/bin/ld: skipping incompatible解决方案

在项目编译过程中遇到/usr/bin/ld报错,提示找不到libgstaudio-1.0.so共享库。问题根源是主程序与链接库的编译环境不一致,具体为arm环境的库在非arm环境下使用。通过查看文件信息和makefile,发现编译工具链配置错误。修正工具链配置后,重新编译解决了问题。确保编译环境一致是避免此类问题的关键。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天在做项目的时候,用make命令后出现了/usr/bin/ld: skipping incompatible…问题。
在这里插入图片描述
分析:编译器给出的错误信息已经很清楚了:兼容性问题,即产生了不兼容性且找不到libgstaudio-1.0.so共享库,可是libgstaudio-1.0.so在指定的路径下明明是存在的呢。

错误原因排查:

经过排查发现,我链接的共享库是在arm环境下编译产生的,而主程序却是在非arm环境的(此处错误),因此产生了不兼容性。

这个问题实质是链接库文件时,库文件版本与平台版本不对应的问题。

解决方法:objdump -p ibgstaudio-1.0.so 或者 file ***.o 查看文件信息
在这里插入图片描述
在这里插入图片描述

看一下该库的版本是32位还是64位的,或是ARM版还是..等等。 仔细分析一下,发现我在编译gst-omx-1.10.4包时所用的工具链是x86-64,而需要链接的库文件使用的工具链是ARM aarch64,至此,问题很明显是编译工具链配置错误。

查看omx包的makefile发现:–host=

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值