六月刀 发表于 2017-9-26 18:37:53

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

转自:http://blog.csdn.net/some_times/article/details/36187101一次在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系统的位数的方法。参考地址:http://www.cnblogs.com/bigcat814/archive/2012/12/04/2800832.html查看linux系统的位数:在shell中输入:getconf LONG_BIT得到系统的位数,我的这台是64位的。查看.so库文件编译时的系统位数:在shell中输入:readelf -h libxxxxxx.so可以看到CLASS一行显示的是ELF32,可知此库是在32位系统下编译的。
页: [1]
查看完整版本: error:/usr/bin/ld:skipping incompatible ./libxxxx.so when searching for -lxxxx