編譯時報錯 /usr/bin/ld: cannot find -lltdl 表示鏈接器找不到指定庫文件。本文提供三步標準排查修復流程:更新數據庫 → 定位庫文件 → 創建軟鏈接。
updatedb
locate libltdl # 輸出示例: # /usr/lib/libltdl.so.3 # /usr/lib/libltdl.so.3.1.4 # /usr/share/libtool/libltdl
ln -sf /usr/lib/libltdl.so.3 /usr/lib/libltdl.so
鏈接器尋找 -lltdl 時實際查找 libltdl.so,而系統僅安裝了版本化文件 libltdl.so.3。
-lxxx 對應文件 libxxx.solibxxx.so.版本/usr/lib、/usr/local/lib、/lib)創建無版本號軟鏈接指向實際版本# 查看庫的編譯鏈接參數 pkg-config --libs libltdl # 輸出可能包含 -L路徑 -lltdl,確認庫路徑是否在鏈接器搜索路徑中
# Debian/Ubuntu apt-get install libltdl-dev # CentOS/RHEL yum install libtool-ltdl-devel
開發包會自動創建正確的 .so 軟鏈接並安裝頭文件。