問題
我在編譯項目時,產生了一個 /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