安装cffi 1.11.5包时出现/usr/bin/ld: cannot find -lffi的错误。

3

输入代码在这里我正在尝试在我的Linux服务器上安装paramiko模块。由于服务器上的pip被阻止,因此我正在手动复制软件包压缩文件并从setup.py安装它们。

当我尝试安装paramiko时,我遇到了以下问题:

error: Could not find suitable distribution for Requirement.parse('pynacl>=1.0.1')

所以我下载了PyNaCl软件包,但是遇到了问题。
distutils.errors.DistutilsError: Could not find suitable distribution for Requirement.parse('cffi>=1.1.0')

pynacl需要cffi 1.1.0或以上版本: 因此,在安装cffi 1.11.5时,我遇到以下错误:

 [root@homecffi-1.11.5]# python3.5 setup.py install
        running install
---
---
        installing library code to build/bdist.linux-x86_64/egg

--
--
        building '_cffi_backend' extension
        gcc -pthread -fno-strict-aliasing -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -DUSE__THREAD -DHAVE_SYNC_SYNCHRONIZE -I/usr/local/lib/libffi-3.1/include -I/usr/local/include/python3.5m -c c/_cffi_backend.c -o build/temp.linux-x86_64-3.5/c/_cffi_backend.o
        c/_cffi_backend.c: In function ‘b_callback’:
        c/_cffi_backend.c:5911: warning: ‘ffi_prep_closure’ is deprecated (declared at /usr/local/include/ffi.h:341)
        gcc -pthread -shared build/temp.linux-x86_64-3.5/c/_cffi_backend.o -L$(libdir)/../lib64 -lffi -o build/lib.linux-x86_64-3.5/_cffi_backend.cpython-35m-x86_64-linux-gnu.so
        /usr/bin/ld: cannot find -lffi
        collect2: ld returned 1 exit status
    error: command 'gcc' failed with exit status 1

有谁能帮我解决这个问题吗?

2个回答

3
如果这是一台Debian或Ubuntu机器,
sudo apt install libffi-dev

然后再尝试一次。

对于其他发行版,安装方法和软件包名称可能会有所不同。


Linux,红帽 5。 - Rithesh Bhat
1
yum install libffi-devel,然后,也许吧。现代版本的libffi(以及cffi)可能与这么旧的Red Hat版本不兼容。 - AKX

0
当使用-static进行链接且没有libXYZ.a时,也会出现/usr/bin/ld: cannot find XYZ的错误。开发包通常包含.a版本,尽管有些发行版似乎认为静态库已经过时而完全停止支持。您可能需要从源代码构建该库。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接