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

System123
sumber
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.

Zhao Shilong
sumber
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.

Pemenang
sumber