今天玩乙個遊戲叫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...