问题
我在编译项目时,产生了一个 /usr/bin/ld: skipping incompatible ../../xxx/ when searching for -lxxx
的编译错误,如下图所示:
解决方法
由图中的错误可知,在编译时,是能够在我们指定目录下的 *.so
动态库的,但是当使用 -lxxx
方式搜索时,搜索到的动态库是不满足编译条件的。通过查阅网上的资料和我们自身产品的推测,我们怀疑是因为cpu架构不同,而导致的,即我电脑是属于x86的,而我拿到的项目是在arm架构平台上的。
使用 lscpu
查看本机cpu架构。
使用 readelf
命令查看 ELF 文件的信息,如下图所示,果然如猜测所示,我拿到的程序是基于arm架构的。
最后换成基于x86架构的,编译通过。。。
参考链接
http://www.aiothome.net/read.php?tid=17801
https://stackoverflow.com/questions/14990222/skipping-incompatible-cannot-find