Linux 動態鏈結庫找不到的解決辦法

2021-07-02 05:46:23 字數 764 閱讀 8750

今天玩乙個遊戲叫supertuxkart,是一款卡丁車遊戲。執行run_game.sh指令碼時提示libidn.so.11,libcurl-gnutls.so找不到。

首先locate libcurl-gnutls.so,發現找到了該檔案,不是沒有安裝的問題

然後在/etc/ld.so.cache中grep一下,需要乙個額外命令

strings /etc/ld

.so.cache | grep libcurl-gnutls.so

grep到了libcurl-gnutls.so,說明系統可以找到該庫檔案。

然後locate libcurl-gnutls.so,發現了遊戲目錄系統目錄都出現了該檔案,於是新建/etc/ld.so.conf.d/supertuxkart.conf檔案,新增遊戲目錄絕對路徑到檔案中,並執行sudo ldconfig,重新整理ld.so.cache

再次執行遊戲,發現libcurl-gnutls.so庫檔案可以找到,但是libidn.so.11仍然找不到。

於是拷貝系統目錄下libidn.so.11檔案到遊戲目錄下,發現仍然找不到。懷疑是鏈結庫不相容。

find . -type f | xargs file,發現遊戲自帶的庫檔案都是32位的。而我剛剛拷過去的庫檔案是64位的。

安裝32位庫即可,sudo apt-get install libidn:i386。問題解決!

linux 鏈結庫找不到的問題

linux中ld查詢庫時,經常遇到問題,記錄一下 如果 extra libs裡面明確寫了這個庫,例如 extra libs lcudart 就一定要把這個庫的路徑加到 extra ldflags中,否則會報找不到。即使這個庫的路徑存在於ld library path中。如果是 extra libs中...

linux找不到動態鏈結庫 so檔案的解決方法

如果使用自己手動生成的動態鏈結庫.so檔案,但是這個.so檔案,沒有加入庫檔案搜尋路勁中,程式執行時可能會出現找不到動態鏈結庫的情形。其中的libjson linux gcc 4.6 libmt.so cannot found。解決這個問題 1 在系統中查詢這個檔案 當然要保證系統中已經有這個.so...

如果linux下找不到動態鏈結庫 so檔案

如果使用自己手動生成的動態鏈結庫.so檔案,但是這個.so檔案,沒有加入庫檔案搜尋路勁中,程式執行時可能會出現找不到動態鏈結庫的情形。error while loading shared libraries libnetsnmpmibs.so.30 cannot open shared object...