Software-Installation
‘LD’ 找不到要連結的庫,即使 ’ldconfig -v’ 列出了文件
我正在嘗試在我的 RaspBerry Pi 上安裝 KIWI。當我嘗試
pip install kiwi
我得到一個連結失敗,與
/usr/lib64/gcc/aarch64-suse-linux/10/../../../../aarch64-suse-linux/bin/ld: cannot find -lpython3.6m collect2: error: ld returned 1 exit status error: command 'gcc' failed with exit status 1
因此,我將相關目錄添加到我的
ld.so.conf
, 並執行sudo ldconfig -v | grep python
,輸出為:\ldconfig: Can't stat /libilp32: No such file or directory ldconfig: Path `/usr/lib' given more than once (from <builtin>:0 and /etc/ld.so.conf:4) ldconfig: Path `/usr/lib64' given more than once (from <builtin>:0 and /etc/ld.so.conf:2) ldconfig: Can't stat /usr/libilp32: No such file or directory libpython3.6m.so.1.0 -> libpython3.6m.so.1.0 libpython3.8.so.1.0 -> libpython3.8.so.1.0 libpython3.so -> libpython3.so libboost_python-py3.so.1.75.0 -> libboost_python3.so libboost_mpi_python-py3.so.1.75.0 -> libboost_mpi_python-py3.so.1.75.0 libpytalloc-util.cpython-38-aarch64-linux-gnu.so.2 -> libpytalloc-util.cpython-38-aarch64-linux-gnu.so.2.3.1 libpyldb-util.cpython-38-aarch64-linux-gnu.so.2 -> libpyldb-util.cpython-38-aarch64-linux-gnu.so.2.2.0 libpython2.7.so.1.0 -> libpython2.7.so.1.0 /usr/include/python3.8: (from /etc/ld.so.conf:6)
請注意,
libpython3.6m.so
在該列表中,這是 ld 抱怨它找不到的內容。當 ld 清楚地能夠找到要連結的庫時,為什麼 kiwi 的 pip 安裝在 ld 上失敗?
ldconfig
不配置ld
,它配置ld.so
,動態連結器/載入器。ld
在這裡失敗是因為它正在尋找libpython3.6m.so
; 為此,您應該安裝相關的開發包(大概是python3-devel
)。
您應該注意,
libpython3.6m.so
它不在ldconfig
. 輸出提到libpython3.6m.so.1.0
,這是不一樣的。如果您沒有開發包,您可以創建一個符號連結
libpython3.6m.so
到libpython3.6m.so.1.0
.此外,正如已經提到的,編譯器和連結器並不關心
ld.so.conf
.