即使“ldconfig -v”列出了文件,“LD”也找不到要链接的库

即使“ldconfig -v”列出了文件,“LD”也找不到要链接的库

我正在尝试在我的 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.solibpython3.6m.so.1.0.

此外,正如已经提到的,编译器和链接器不关心ld.so.conf.

相关内容