尝试使用自制软件安装curl,得到libcurl.4.dylib的“不兼容的库版本”

尝试使用自制软件安装curl,得到libcurl.4.dylib的“不兼容的库版本”

我使用的是 OSX 10.9.5。我想使用比 OSX 捆绑版本更高版本的 CURL,但我不想删除 OSX 二进制文件以防万一,所以我想选择通过自制程序安装它。

我自己的路:

$ echo $PATH
/Users/Tom/.nvm/v0.10.33/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Users/Tom/.composer/vendor/bin:/usr/local/mysql/bin::~/Library/Trigger\ Toolkit:/usr/local/heroku/bin

如您所见,几乎位于我的节点路径后面/usr/local/bin的前面。pathnvm

的结果$ brew install curl

Warning: curl-7.38.0 already installed

的结果$ curl

dyld: Library not loaded: /usr/local/lib/libcurl.4.dylib
  Referenced from: /usr/local/bin/curl
  Reason: Incompatible library version: curl requires version 8.0.0 or later, but libcurl.4.dylib provides version 7.0.0
[1]    6481 trace trap  curl

我安装时做错了什么?为什么brew 没有包含所需的libcurl 版本?

答案1

提供了一种解决方案这里

这个想法是制作一个静态的curl 版本,然后将其粘贴到/usr/bin/ 或/usr/local/bin/ 中。简要地:

  1. ~$ xcode-select --install
  2. 下载最新版本卷曲
  3. cd 到该目录并运行

    ~$ ./configure --disable-shared --with-darwinssl --enable-threaded-resolver

    ~$ make -j `sysctl -n hw.逻辑cpu_max`

  4. 将编译后的curl(位于./src/curl)复制到/usr/bin/

笔记:在3中的make命令中,符号“`”确实是反引号,而不是单引号。

答案2

尝试运行rm /usr/local/Cellar/curl然后重新安装。 (这将删除您的自制卷曲。)

当我测试安装的curl时,Homebrew这么说:

Mac OS X 已经提供了该软件,并行安装另一个版本可能会导致各种麻烦。

一般来说,这不会给您带来任何后果。如果您构建自己的软件并且需要此公式,则需要添加到构建变量中:

LDFLAGS:  -L/usr/local/opt/curl/lib
CPPFLAGS: -I/usr/local/opt/curl/include

相关内容