(轉載)關於usr/bin/ld: cannot find -lxxx問題總結

来源:https://www.cnblogs.com/JsonZhangAA/archive/2018/05/09/9015038.html
-Advertisement-
Play Games

usr/bin/ld: cannot find -lxxx問題總結 linux下編譯應用程式常常會出現如下錯誤: /usr/bin/ld: cannot find -lxxx 意思是編譯過程找不到對應庫文件。其中,-lxxx表示鏈接庫文件 libxxx.so。 註:有時候,由於庫文件是編譯過程臨時生 ...


usr/bin/ld: cannot find -lxxx問題總結

linux下編譯應用程式常常會出現如下錯誤:   /usr/bin/ld: cannot find -lxxx        意思是編譯過程找不到對應庫文件。其中,-lxxx表示鏈接庫文件 libxxx.so。        註:有時候,由於庫文件是編譯過程臨時生成的,如果前面出錯也會導致出現這種情況,下麵針對的是由於本機系統環境缺失而引起的。。        一般出現這種錯誤有以下幾種原因: 1.系統缺乏對應的庫文件; 2.版本不對應; 3.庫文件的鏈接錯誤; 4.庫文件路徑設置問題。        對應第一第二種情況,可以通過下載安裝lib來解決,ubuntu大多數可以直接通過apt-get來安裝: apt-get install libxxx-dev        一般遇到這種問題筆者第一時間也是會去檢查系統是否已安裝該lib或者是否已選擇正確版本(只是習慣問題),如果還是不能解決問題,那麼,引起錯誤的原因不是鏈接錯誤就是庫文件路徑問題了。

       通過find或者locate指令定位到鏈接文件,查看鏈接文件是否正確的指向了我們希望的lib,如果不是,用 ln -sf */libxxx.so.x */libxxx.so 指令修改它。

 

 

編譯程式遇到:/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../x86_64-suse-linux/bin/ld: cannot find -lxml2
解決/usr/bin/ld: cannot find -lxxx 問題
問題:
在linux環境編譯應用程式或lib的source code時常常會出現如下的錯誤訊息:
/usr/bin/ld: cannot find -lxxx
這些訊息會隨著編譯不同類型的source code 而有不同的結果出來如:
/usr/bin/ld: cannot find -lc
/usr/bin/ld: cannot find -lltdl
/usr/bin/ld: cannot find -lXtst
其中xxx即表示函式庫文件名稱,如上例的:libc.so、libltdl.so、libXtst.so。
其命名規則是:lib+庫名(即xxx)+.so。
會發生這樣的原因有以下三種情形:
1 系統沒有安裝相對應的lib
2 相對應的lib版本不對
3 lib(.so檔)的symbolic link 不正確,沒有連結到正確的函式庫文件(.so)
解決方法:
(1)先判斷在/usr/lib 下的相對應的函式庫文件(.so) 的symbolic link 是否正確,若不正確改成正確的連結目標即可解決問題。
(2)若不是symbolic link 的問題引起,而是系統缺少相對應的lib安裝lib即可解決。
(3)如何安裝缺少的lib:
以上面三個錯誤訊息為例:
錯誤1缺少libc的LIB
錯誤2缺少libltdl的LIB
錯誤3缺少libXtst的LIB
以Ubuntu為例:
先搜尋相對應的LIB再進行安裝的作業如:
apt-cache search libc-dev
apt-cache search libltdl-dev
apt-cache search libXtst-dev
實例:
在進行輸入法gcin的Source Code的編譯時出現以下的錯誤訊息:
/usr/bin/ld: cannot find -lXtst
經檢查後發現是:
lib(.so檔)的symbolic link 不正確
解決方法如下:
cd /usr/lib
ln -s libXtst.so.6 libXtst.so
如果在/usr/lib的目錄下找不到libXtst.so 檔,那麼就表示系統沒有安裝libXtst的函式庫。
解法如下:
apt-get install libxtst-dev

       如果是庫文件路徑引發的問題,可以到/etc/ld.so.conf.d目錄下,修改其中任意一份conf文件,(可以自建conf,以方便識別)將lib所在目錄寫進去,然後在終端輸入 ldconfig 更新緩存。
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • chmod命令用來改變文件或者目錄的許可權,只有文件的屬主和超級用戶才能夠執行這個命令 格式: chmod [option] [mode] [file] >常用參數選項 -R : 遞歸修改目錄以及子目錄下麵的所有文件許可權 >模式有兩種格式,一種採用字母方式的表達式,另外一種是數字 1,首先需要瞭解文件 ...
  • 一、前期工作准備 電腦虛擬化開啟(必要工作)大致流程: a.電腦開機時長按F12(F10)進入BIOS界面; b.依次選擇Configuratio > Intel Virtual Technology > Enabled; c.F10保存BIOS設置,再次重啟電腦。 二、安裝包准備 VirtualB ...
  • 參看代碼 GitHub: redis.txt 一、Linux (DeepinOS) 環境 二、Windows 環境 蒙 2018-05-09 22:31 周三 ...
  • 1 /* 2 CHECKER3.C -- Mouse Hit-Test Demo Program No.3 3 (c) Charles Petzold, 1998 4 */ 5 6 #include <Windows.h> 7 8 #define DIVISIONS 5 9 10 LRESULT C ...
  • 幾個常用的方法如下: 把全部foo替換為bar,全局替換 當前行替換foo為bar 替換每個foo為bar,但需要確認. 單詞匹配替換, 需確認 忽略foo大小寫,替換為bar, 需確認 ...
  • 查看埠對應的程式: 根據進程號 ,查看程式的運行信息, 比如可執行文件的位置。 ...
  • 內核級別: (POST)BIOS加電自檢-->(Boot Sequence)從BIOS中讀取啟動順序-->讀取MBR中的bootloader-->載入內核-->讀取偽根-->讀取根文件中的init(/sbin/init) 用戶級別:設置預設運行級別-->運行初始化腳本,完成系統初始化-->關閉對應級 ...
  • Linux發行版本:基於linux內核提供桌面環境及辦公套件的操作系統 (Linux內核只有一個) 1. 啟動終端的快捷鍵: ctr + alt + t 2. 終端字體放大: ctr+shift+'+' 3. 終端字體縮小: ctr+'-' 4. ls : 查看當前目錄的文件信息 4.1 ls 路徑 ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...