找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 1580|回复: 0

error:/usr/bin/ld:skipping incompatible ./libxxxx.so when searching for -lxxxx

[复制链接]

96

主题

6

回帖

108

积分

屌炸天

积分
108
发表于 2017-9-26 18:37:53 | 显示全部楼层 |阅读模式
一次在linux上部署环境,需要编译一个测试库;
编译过程中出现这一个提示:
error:/usr/bin/ld:skipping incompatible ./libxxxx.so when searching for -lxxxx
这需要的.so库文件明明在其目录下,并且该目录也添加到编译选项Makefile中了,并且所有的库都给了权限了的。
解决未果,Google了下,经提醒是由于linux位数不一样导致的编译错误。
需要的.so的库是在32bit环境下编译的,而需要部署环境的这台linux系统是64bit的,导致的错误。
将需要的.so库在64bit环境下重新编译之后,测试库的编译也通过了。

下面介绍下Google上的查看linux系统的位数的方法。
查看linux系统的位数:在shell中输入:getconf LONG_BIT
得到系统的位数,我的这台是64位的。
查看.so库文件编译时的系统位数:在shell中输入:readelf -h libxxxxxx.so
可以看到CLASS一行显示的是ELF32,可知此库是在32位系统下编译的。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Comsenz Inc. ( 粤ICP备15088888号-2 )

GMT+8, 2024-4-20 15:59 , Processed in 0.122478 second(s), 11 queries , File On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表