我正在尝试在我的 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 上失败?
答案1
ldconfig
不配置ld
,它配置ld.so
动态链接器/加载器。ld
在这里失败是因为它正在寻找libpython3.6m.so
;为此,您应该安装相关的开发包(大概python3-devel
)。
答案2
您应该注意,它libpython3.6m.so
不在 的输出中ldconfig
。输出提到libpython3.6m.so.1.0
,这是不一样的。
如果您没有开发包,您可以创建一个符号链接libpython3.6m.so
到libpython3.6m.so.1.0
.
此外,正如已经提到的,编译器和链接器不关心ld.so.conf
.