libcurl 或 cURL 不起作用 OSX Mavericks

Sys*_*123 5 curl macos

在我开始之前,让我说我已经卸载、重新安装、从源代码编译、使用了 macports 并且通常在过去 6 个小时内尝试让 curl 在我的 Mac OSX Mavericks 上工作,但我仍然没有来对。

如果我尝试用 curl 做任何事情,我会得到这个:

dyld: Library not loaded: /opt/local/lib/libcurl.4.dylib
  Referenced from: /opt/local/bin/curl
  Reason: Incompatible library version: curl requires version 8.0.0 or later, but     libcurl.4.dylib provides version 7.0.0
Run Code Online (Sandbox Code Playgroud)

但是,如果我检查我的卷曲,我没有发现任何问题。

$ which curl
/opt/local/bin/curl

$ otool -L /opt/local/bin/curl
/opt/local/bin/curl:
    /opt/local/lib/libcurl.4.dylib (compatibility version 8.0.0, current version 8.0.0)
    /opt/local/lib/libidn.11.dylib (compatibility version 18.0.0, current version 18.9.0)
    /opt/local/lib/libldap-2.4.2.dylib (compatibility version 11.0.0, current version 11.3.0)
    /opt/local/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.8)
    /System/Library/Frameworks/Security.framework/Versions/A/Security (compatibility version 1.0.0, current version 55471.14.0)
    /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 855.14.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)

$ otool -L /opt/local/lib/libcurl.4.dylib
/opt/local/lib/libcurl.4.dylib:
    /opt/local/lib/libcurl.4.dylib (compatibility version 8.0.0, current version 8.0.0)
    /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 855.14.0)
    /System/Library/Frameworks/Security.framework/Versions/A/Security (compatibility version 1.0.0, current version 55471.14.0)
    /opt/local/lib/libidn.11.dylib (compatibility version 18.0.0, current version 18.9.0)
    /opt/local/lib/libldap-2.4.2.dylib (compatibility version 11.0.0, current version 11.3.0)
    /opt/local/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.8)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)
Run Code Online (Sandbox Code Playgroud)

我的 curl 库是版本 8.0.0 我做了一个locate libcurl.4.dylib | xargs otool -L,这表明我唯一的 curl 版本 7.0.0 存在于 MacOSX10.8.sdk/usr/lib 文件夹中,并且它没有从任何地方进行符号链接。

欢迎任何建议。

谢谢

小智 1

我和你有同样的问题。

  1. 我建议你检查下的libcurl /usr/lib/libcurl.4.dylib。如果是版本 7.0.0,请将其移至另一个名称并链接到您的/opt/local/lib/libcurl.4.dylib. 但这可能会影响某些使用 libcurl 的应用程序的行为,因此不建议这样做。
  2. 或者更好的是,通过运行检查可能的配置brew options formula-name,然后brew install formular-name --with-brewed-curl如果有此类选项则运行。
  3. 您可以从源代码构建并配置,LIBCURL_CFLAGS如果LIBCURL_LIBS2 不起作用。

我没有尝试过2或3。您可以在这里阅读这篇文章http://www.dreamhack.it/?p=95

希望能帮助到你。