在我开始之前,我要说的是,我已经卸载、重新安装、从源代码编译、使用了 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
然而,如果我检查我的卷发,我没有发现任何问题。
$ 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)
我的 curl 库是版本 8.0.0,我做了一个locate libcurl.4.dylib | xargs otool -L
,这表明我拥有的 curl 的唯一版本 7.0.0 存在于 MacOSX10.8.sdk/usr/lib 文件夹中,并且它没有从任何地方进行符号链接。
欢迎任何建议。
谢谢
答案1
我和你有同样的问题。
- 我建议你检查一下 下的 libcurl
/usr/lib/libcurl.4.dylib
。如果是 7.0.0 版本,请将其移至其他名称并链接到/opt/local/lib/libcurl.4.dylib
。但这可能会影响某些使用 libcurl 的应用程序的行为,因此不建议这样做。 - 或者更好的是,通过运行检查可能的配置
brew options formula-name
,然后brew install formular-name --with-brewed-curl
如果有这样的选项就运行。 - 您可以从源代码构建并配置,
LIBCURL_CFLAGS
如果LIBCURL_LIBS
2 不起作用。
我还没尝试过 2 或 3。您可以在此处阅读本文http://www.dreamhack.it/?p=95。
希望能帮助到你。
答案2
一个解决方案是http://curl.haxx.se/mail/archive-2014-10/0072.html
这个想法是静态构建 curl,然后将其粘贴到 /usr/bin/ 或 /usr/local/bin/。简要来说:
- ~$
xcode-select --install
- 从以下网址下载最新版本的 curlhttp://curl.haxx.se/download.html
- cd 到目录并运行
~$./configure --disable-shared --with-darwinssl --enable-threaded-resolver
~$make -j `sysctl -n hw.logicalcpu_max`
- 将编译好的 curl 复制
./src/curl
到你的/usr/bin/
注意:make
命令中的符号“`”实际上是反引号,而不是单引号。