libcurl или cURL не работает OSX Mavericks
Прежде чем я начну, позвольте мне сказать, что я удалил, переустановил, скомпилировал из исходного кода, использовал 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 ответа
У меня та же проблема с тобой.
- Я предлагаю вам проверить 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.
Надеюсь, поможет.
Одно решение было предоставлено в http://curl.haxx.se/mail/archive-2014-10/0072.html
Идея состоит в том, чтобы сделать статическую сборку curl и затем вставить ее вам / usr /bin/ или / usr / local /bin/. Кратко:
- ~ $
xcode-select --install
- Загрузите последнюю версию curl с http://curl.haxx.se/download.html
- Перейдите в каталог и запустите
~ $./configure --disable-shared --with-darwinssl --enable-threaded-resolver
~ $make -j `sysctl -n hw.logicalcpu_max`
- Скопируйте скомпилированный локон, который находится в
./src/curl
на ваш/usr/bin/
Примечание: в make
Команда знак `` 'действительно обратная кавычка, а не одиночная кавычка