libcurl atau cURL tidak berfungsi dengan OSX Mavericks


4

Sebelum saya mulai, izinkan saya mengatakan bahwa saya telah menghapus instalan, menginstal ulang, dikompilasi dari sumber, menggunakan macports dan umumnya mencoba selama 6 jam terakhir untuk membuat ikal bekerja pada Mac OSX Mavericks saya, tetapi saya masih belum benar.

Jika saya mencoba melakukan sesuatu dengan ikal saya mendapatkan ini:

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

Namun, jika saya memeriksa ikal saya, saya tidak melihat ada yang salah.

$ 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 library saya adalah versi 8.0.0 yang saya lakukan locate libcurl.4.dylib | xargs otool -Ldan ini menunjukkan bahwa satu-satunya versi 7.0.0 dari curl yang saya miliki ada di folder MacOSX10.8.sdk / usr / lib dan tidak disinkronkan dari mana saja.

Setiap saran dipersilahkan.

Terima kasih


Apakah ada alasan mengapa Anda tidak menggunakan curl yang dikirim dengan Mavericks dan libcurl yang dikirim dengan XCode?
Sami Laine

Tidak disertai dengan dukungan HTTPS. :(
System123

Jawaban:


1

Saya memiliki masalah yang sama dengan Anda.

  1. Saya sarankan Anda untuk memeriksa libcurl di bawah /usr/lib/libcurl.4.dylib. Jika versi 7.0.0, pindahkan ke nama lain dan buat tautan ke /opt/local/lib/libcurl.4.dylib. Tetapi ini berpotensi mempengaruhi perilaku beberapa aplikasi yang menggunakan libcurl, sehingga tidak direkomendasikan.
  2. Atau lebih baik, periksa kemungkinan konfigurasi dengan menjalankan brew options formula-namedan kemudian jalankan brew install formular-name --with-brewed-curljika ada opsi seperti itu.
  3. Anda dapat membangun dari kode sumber dan mengonfigurasi LIBCURL_CFLAGSdan LIBCURL_LIBSjika 2 tidak berfungsi.

Saya belum mencoba 2 atau 3. Anda dapat membaca artikel ini di sini http://www.dreamhack.it/?p=95 .

Semoga ini bisa membantu.


0

Satu solusi diberikan di http://curl.haxx.se/mail/archive-2014-10/0072.html

Idenya adalah untuk membuat bentuk ikal yang statis dan kemudian menempelkannya kepada Anda / usr / bin / atau / usr / local / bin /. Secara singkat:

  1. ~ $ xcode-select --install
  2. Unduh curl versi terbaru dari http://curl.haxx.se/download.html
  3. cd ke direktori dan jalankan
    ~ $ ./configure --disable-shared --with-darwinssl --enable-threaded-resolver
    ~ $make -j `sysctl -n hw.logicalcpu_max`
  4. Salin ikal terkompilasi, yang terletak di ./src/curldalam/usr/bin/

Catatan: dalam makeperintah, tanda "` "memang merupakan kutipan balik, bukan kutipan tunggal.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.