1. 程式人生 > >/usr/bin/ld: skipping incompatible解決方案

/usr/bin/ld: skipping incompatible解決方案

今天在做專案的時候,用make命令後出現了/usr/bin/ld: skipping incompatible......問題。

這個問題實質是連結庫檔案時,庫檔案版本與平臺版本不對應的問題。

解決方法:objdump -p libmylib.a  看一下該庫的版本是32為還是64位的,或是ARM版還是..等等。仔細分析一下。你就會恍然大霧。(我的碰到的問題是:編譯器選擇的是64版,但是xxx.a是32版,當然不相容)
結論:碰到問題其實是有百利而無一害的,通過解決問題我們才能提升自己!

相關推薦

/usr/bin/ld: skipping incompatible解決方案

今天在做專案的時候,用make命令後出現了/usr/bin/ld: skipping incompatible......問題。 這個問題實質是連結庫檔案時,庫檔案版本與平臺版本不對應的問題。 解決方

編譯出現:【/usr/bin/ld: skipping incompatible * when searching for *】的解決方法

[email protected]:~/6410/linuxcsqlite3$ make gcc sqlite.o -o sqlite -L /home/wzg/6410/sqlite-3.5.9/_install/lib -I/home/wzg/6410/sqlite-3.5.9/_install

【庫連線問題】makefile中如何連線庫以及解決/usr/bin/ld: skipping incompatible問題

關於如何連線庫,這裡只記錄自己碰到的一些問題 編寫Makefile 編譯時 -c 生成.o 檔案:後面要加-I (指明包含的標頭檔案) 連結時 -o 生成可執行檔案:-L(指明庫的位置) -l(指明庫的名字) 還有一個是在引用json庫的問題: lib

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

轉自: http://www.scalachina.com/home.php?mod=space&uid=1&do=blog&id=106 第一次在Redhat(64bit)下編譯時出現如標題的錯誤,之前在其他機器上編譯沒有問題,後來發現可能

/usr/bin/ld: skipping incompatible錯誤

今天碰到的問題: /usr/bin/ld: skipping incompatible qt在連線a和so檔案時報錯 分析:編譯器給出的錯誤資訊已經很清楚了:相容性問題 分析方法:  file xxx.a  或  file xxx.so  看一下該庫的版本是32為還是64位的,或是ARM版還是

/usr/bin/ld:-lc解決方法

背景: 使用海思交叉編譯器編譯庫檔案中出現。 原因: ld表示連線,-lc表示需要連線libc.a。出現這個,說明缺少需要的libc.a檔案。 解決過程: 剛開始以為是海思交叉編譯器的問題,便在安裝目錄find libc.a,找到很多個,排除這個原因;然後檢查路徑問題,發現

/usr/bin/ld: 找不到 -lmsc----解決方案

系統的預設搜尋依賴庫路徑為,/usr/local/lib 在camkelists.txt檔案中對可執行檔案連結libmsc.so add_executable(iat_publish src/iat_publish.cpp src/speech_recognizer.c src/l

linux系統中usr/bin/ld被誤刪/覆蓋解決方案

今天使用ubuntu系統時,誤將usr/bin/ld檔案覆蓋,導致系統庫連結失敗。解決方案如下: 1、 sudo apt-get install dlocate  安裝dlocate 2、dlocate ld   檢視是否有ld安裝包 3、dlocate ld|less 4

安裝 sysbench的 報錯 /usr/bin/ld: cannot find -lmysqlclient_r 解決辦法

cli 既然 cannot ibm 這樣的 mysq 文件名 can 都是 首先你需要找到這個庫的位置 一般找的話需要將lib 給加上(註意:我這裏是 -lmysqlclient_r 的報錯,於是我找就找 libmysqlclient_r ) find / -name

/usr/bin/ld: cannot find -lxxx 的解決辦法

建立 html 解決方法 gcc bash 存在 cannot 重建 ext 在軟件編譯過程中,經常會碰到類似這樣的編譯錯誤: /usr/bin/ld: cannot find -lhdf5 這表示找不到庫文件 libhdf5.so,若是其它庫文件,則是 cannot

編譯時遇到/usr/bin/ld: cannot find -lluajit 解決方法

今天編譯一個c++和torch程式的時候爆出了/usr/bin/ld: cannot find -lluajit的錯誤,幾經折騰,終於吧這個問題解決了, 出現這個問題的原因就是luajit沒有安裝到正確的位置. 1.下載luajit http://luajit.org/download.

/usr/bin/ld: cannot find -lxxx 的解決辦法 新增動態連結庫的搜尋路徑

/usr/bin/ld: cannot find -lxxx 的解決辦法 在軟體編譯過程中,經常會碰到類似這樣的編譯錯誤: /usr/bin/ld: cannot find -lhdf5 這表示找不到庫檔案 libhdf5.so,若是其它庫檔案,則是 cannot find -lxxx 了

/usr/bin/ld: cannot find -lc 解決

[linux_day01]#cc -static hello.c /usr/bin/ld: cannot find -lccollect2: ld 返回 1主要原因是,在安裝Linux時,如果不選擇開發環境,會預設安裝需要的動態庫,但不會安裝靜態庫。如果我們在靜態連線程式時,會找不到libc.a這個基礎靜態庫

/usr/bin/ld: cannot find -lc 的解決辦法

1. gcc沒有加-static引數 使用find /usr/ -name "libc.so",如果沒有內容搜出來,那麼就是qlibc沒有裝,需要安裝一個。在CentOS-6.2-x86_64-bin-DVD1.iso裡面有qlibc的安裝包。網上很多配yum repo的教

解決】/usr/bin/ld: cannot find -lc

現象:執行gcc靜態編譯程式時報錯:/usr/bin/ld: cannot find -lccollect2: ld returned 1 exit statusmake: *** [gcc_dry2] Error 1(或者呼叫Makefile編譯時報錯)原因:程式連結需要靜

CentOS安裝Qt編譯錯誤以及無法除錯的問題解決( /usr/bin/ld:cannot find –lGL 和 Debugginghas failed)

CentOS安裝Qt編譯錯誤以及無法除錯的問題解決 1、前提 系統: CentOS-6.5-x86_64-minimal.iso 最小化linux. 手動安裝x-winodws介面。 Qt版本:qt-opensource-linux-x64-5.6.0.run。 安裝qt需

Linux環境下gcc靜態編譯/usr/bin/ld: cannot find -lc錯誤原因及解決方法 原因:

原因: 一般出現這個問題的時候,Makefile中肯定有-static選項。這其實是靜態連結時沒有找到libc.a。 解決方案: 需要安裝glibc-static.xxx.rpm,如glibc-static-2.12-1.107.el6_4.2.i686.rpm,或是yum install gli

解決usr/bin/ld: cannot find -lxxx的錯誤

轉載自 參考 通常在軟體編譯時出現的usr/bin/ld: cannot find -lxxx的錯誤或者…so undefine xxxx,主要的原因是庫檔案並沒有匯入的ld檢索目錄中。  解決方式: 1. 確認庫檔案是否存在,比如-l123, 在/usr/lib, /usr/local

/usr/bin/ld: cannot find -lcrypto 錯誤的解決方法

Linux下 build code 時,要做 -lssl, -lcrypto 的連結,出現類似下面的錯誤: /usr/bin/ld: cannot find -lcrypto /usr/bin/ld: cannot find -lssl 原因是沒有找到 libss

精闢!!/usr/bin/ld: cannot find -l* 問題的解決方法

如果編譯時,有類似如下的錯誤提示: /usr/bin/ld: cannot find -lpci 則可以安裝相應的庫,來解決這個問題: sudo apt-get install libpci-dev 其實就是缺少*就安裝*  /u