4

Прежде чем начать, позвольте мне сказать, что я удалил, переустановил, скомпилировал из исходного кода, использовал macports и, как правило, в течение последних 6 часов пытался заставить меня работать на моем 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 и это показало, что единственная имеющаяся у меня версия 7.0.0 curl существует в папке MacOSX10.8.sdk/usr/lib и нигде не содержит символических ссылок.

Любые предложения приветствуются.

Спасибо

2 ответа2

1

У меня такая же проблема с тобой.

  1. Я предлагаю вам проверить libcurl в /usr/lib/libcurl.4.dylib . Если это версия 7.0.0, переместите его на другое имя и сделайте ссылку на ваш /opt/local/lib/libcurl.4.dylib . Но это может потенциально повлиять на поведение некоторых приложений, использующих libcurl, поэтому не рекомендуется.
  2. Или, лучше, проверьте возможные конфигурации, запустив brew options formula-name install Formular-name, а затем запустите brew install formular-name --with-brewed-curl если есть такие опции.
  3. Вы можете построить из исходного кода и настроить LIBCURL_CFLAGS и LIBCURL_LIBS если 2 не работает.

Я не пробовал 2 или 3. Вы можете прочитать эту статью здесь http://www.dreamhack.it/?p=95.

Надеюсь, поможет.

0

Одно решение было предоставлено в http://curl.haxx.se/mail/archive-2014-10/0072.html

Идея состоит в том, чтобы сделать статическую сборку curl и затем вставить ее вам /usr /bin / или /usr / local /bin /. Кратко:

  1. ~ $ xcode-select --install
  2. Загрузите последнюю версию curl с http://curl.haxx.se/download.html
  3. перейдите в каталог и запустите
    ~ $ ./configure --disable-shared --with-darwinssl --enable-threaded-resolver
    ~ $ make -j `sysctl -n hw.logicalcpu_max`
  4. Скопируйте скомпилированный curl, который находится в ./src/curl в ваш /usr/bin/

Примечание: в команде make знак "` "действительно является обратной кавычкой, а не одинарной кавычкой.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .