Software-Installation
如何“安裝”共享庫
我正在使用 gcc 開發一個使用外部庫的 C++ 應用程序。例如
libtiff
和libpng
。我得到了這些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
。這對於測試來說很好,或者如果你不是root
sudoer,你可以將它添加到你的 shell 初始化中(如.zshrc
),如果你想要它永久。但是當然解析變數和搜尋文件會更慢,這就是為什麼你通常更喜歡第二種方法:- 複製庫後,
ldconfig
以 root 身份或使用sudo
. 這會掃描標準庫路徑(/lib
and/usr/lib
或/lib64
and/usr/lib64
)和來自配置文件/etc/ld.so.conf
的路徑以及作為庫參數給出的路徑,ldconfig
並更新ld.so
整個系統的庫記憶體。