【问题标题】:Can't get pycurl to install on cygwin: missing openssl symbols CRYPTO_num_locks etc无法在 cygwin 上安装 pycurl:缺少 openssl 符号 CRYPTO_num_locks 等
【发布时间】:2014-07-04 10:43:17
【问题描述】:

我正在尝试在 Windows 7 Cygwin 上安装 pycurl。我在那个环境中运行了easy_install,但是命令

easy_install pycurl

给出一堆未定义的符号错误:

/tmp/easy_install-A69Atd/pycurl-7.19.3.1/src/pycurl.c:688: undefined reference to `CRYPTO_set_id_callback'
/tmp/easy_install-A69Atd/pycurl-7.19.3.1/src/pycurl.c:688:(.text+0x70f): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `CRYPTO_set_id_callback'
/tmp/easy_install-A69Atd/pycurl-7.19.3.1/src/pycurl.c:689: undefined reference to `CRYPTO_set_locking_callback'
/tmp/easy_install-A69Atd/pycurl-7.19.3.1/src/pycurl.c:689:(.text+0x716): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `CRYPTO_set_locking_callback'
build/temp.cygwin-1.7.29-x86_64-2.7/src/pycurl.o: In function `pycurl_ssl_init':
/tmp/easy_install-A69Atd/pycurl-7.19.3.1/src/pycurl.c:671: undefined reference to `CRYPTO_num_locks'
/tmp/easy_install-A69Atd/pycurl-7.19.3.1/src/pycurl.c:671:(.text+0xaf7c): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `CRYPTO_num_locks'
/tmp/easy_install-A69Atd/pycurl-7.19.3.1/src/pycurl.c:679: undefined reference to `CRYPTO_set_id_callback'
/tmp/easy_install-A69Atd/pycurl-7.19.3.1/src/pycurl.c:679:(.text+0xafd3): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `CRYPTO_set_id_callback'
/tmp/easy_install-A69Atd/pycurl-7.19.3.1/src/pycurl.c:680: undefined reference to `CRYPTO_set_locking_callback'
/tmp/easy_install-A69Atd/pycurl-7.19.3.1/src/pycurl.c:680:(.text+0xafdf): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `CRYPTO_set_locking_callback'

有什么解决方法的想法吗?

【问题讨论】:

    标签: openssl pycurl


    【解决方案1】:

    setup.py 在库中缺少 -lcrypto,

    class ExtensionConfiguration(object):
        def __init__(self):
            self.include_dirs = []
            self.define_macros = [("PYCURL_VERSION", '"%s"' % VERSION)]
            self.library_dirs = []
            self.libraries = [] 
    

    将self.libraries 更改为包含crypto:

    self.libraries = ["crypto"]
    

    【讨论】:

      猜你喜欢
      • 2020-06-03
      • 2021-03-09
      • 2022-06-15
      • 2017-10-21
      • 1970-01-01
      • 2017-06-13
      • 2020-10-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多