GNU/Linux >> Belajar Linux >  >> Linux

Tidak dapat menemukan kesalahan perpustakaan libcrypto

Tambahkan -L /usr/local/ssl/lib/ ke baris perintah GCC, sebelum -lcrypto . Karena Anda membuat header OpenSSL di bawah /usr/local/ssl , Anda juga perlu menautkan ke perpustakaan yang sebenarnya di bawah awalan yang sama (meskipun Anda tampaknya hanya menginstal yang statis di sana, itu mungkin atau mungkin bukan niat Anda; Anda mungkin perlu menginstal ulang OpenSSL yang dibuat dari sumber dengan benar).

(edit) Untuk memperbaiki dlopen() dan teman tidak ditemukan oleh linker, tambahkan -ldl ke baris perintah GCC. -ldl memberi tahu penaut untuk juga menautkan ke libdl.so, yang merupakan pustaka bersama yang berisi dlopen() , dlsym() , dlclose() dll.; fungsi ini digunakan oleh OpenSSL secara internal dan karenanya, -ldl adalah dependensi tidak langsung saat menggunakan -lcrypto (di Linux). Karena Anda menautkan ke versi statis libcrypto, Anda perlu menautkan secara eksplisit ke semua dependensi tidak langsung.

Jika Anda tidak terbiasa menautkan ke perpustakaan yang tepat, saya sarankan Anda menggunakan OpenSSL seperti yang diinstal dari manajer paket Sistem Operasi Anda; itu mungkin menyelamatkan Anda dari beberapa masalah.


Ini mungkin relevan untuk orang yang mencoba membangun openssl mereka sendiri dari sumber dan kemudian menggunakannya untuk mengkompilasi program lain (dalam kasus saya Git)

Selama konfigurasi openssl, tambahkan opsi 'shared':

./config shared

Ini akan membuat perpustakaan bersama yang diperlukan libcrypto.so . Anda akan menemukan lebih banyak di file INSTALL.

Juga, jika Anda mengalami kesalahan ini selama 'make'

"....can not be used when making a shared object

kompilasi ulang dengan -fPIC

./config shared -fPIC


Linux
  1. Bagaimana cara memperbaiki Kesalahan Instalasi Python saat memuat pustaka bersama:libssl.so.1.0.0? [Terselesaikan]

  2. Tidak Dapat Menemukan -lm?

  3. ld tidak dapat menemukan perpustakaan yang ada

  1. Mengonversi Perpustakaan Statis menjadi Perpustakaan Bersama?

  2. Cara menginisialisasi perpustakaan bersama di Linux

  3. libstdc++.so.5:tidak dapat membuka file objek bersama - tetapi pustaka diinstal dan mutakhir

  1. Menginstal Qt di linux, tidak dapat menemukan -lGL

  2. Tidak dapat menemukan kesalahan pkg-config

  3. Galat Memuat Pustaka Bersama (glew)