Software-Installation

如何“安裝”共享庫

  • May 17, 2022

我正在使用 gcc 開發一個使用外部庫的 C++ 應用程序。例如libtifflibpng。我得到了這些apt-get,一切正常。

但後來我添加了另一個第三方庫,作為獨立的一對.a.so lib文件傳遞。我檢測到另一個.so儲存在 中/usr/lib/x86_64-linux-gnu,我在.so那裡複製了新的。我成功連結了我的應用程序,但執行失敗並顯示消息“ error while loading shared libraries: libThirdParty.so: cannot open shared object file: No such file or directory

我錯過了什麼?

應用程序有兩種方法可以找到它的庫:

  • 環境變數LD_CONFIG_PATH。將其設置為您的庫的路徑,以冒號分隔。首先檢查它是否不為空 ( echo $LD_LIBRARY_PATH) 並在這種情況下展開它,例如LD_CONFIG_PATH=$LD_LIBRARY_PATH:/opt/foo/lib:/home/myself/lib。這對於測試來說很好,或者如果你不是rootsudoer,你可以將它添加到你的 shell 初始化中(如.zshrc),如果你想要它永久。但是當然解析變數和搜尋文件會更慢,這就是為什麼你通常更喜歡第二種方法:
  • 複製庫後,ldconfig以 root 身份或使用sudo. 這會掃描標準庫路徑(/liband/usr/lib/lib64and /usr/lib64)和來自配置文件/etc/ld.so.conf的路徑以及作為庫參數給出的路徑,ldconfig並更新ld.so整個系統的庫記憶體。

引用自:https://unix.stackexchange.com/questions/702860