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.