爬坑記錄1:-undefined undefined reference to *** openssl 無法鏈接
/usr/lib/x86_64-linux-gnu/libcurl.so: undefined reference to `PKCS12_PBE_add@OPENSSL_1.0.0'
/usr/lib/x86_64-linux-gnu/libcurl.so: undefined reference to `OCSP_basic_verify@OPENSSL_1.0.0'
/usr/lib/x86_64-linux-gnu/libcurl.so: undefined reference to `BIO_puts@OPENSSL_1.0.0'
/usr/lib/x86_64-linux-gnu/libcurl.so: undefined reference to `SSL_get_peer_certificate@OPENSSL_1.0.0'
/usr/lib/x86_64-linux-gnu/libcurl.so: undefined reference to `BIO_free@OPENSSL_1.0.0'
/usr/lib/x86_64-linux-gnu/libcurl.so: undefined reference to `SSLv3_client_method@OPENSSL_1.0.0'
/usr/lib/x86_64-linux-gnu/libcurl.so: undefined reference to `ENGINE_get_id@OPENSSL_1.0.0'
/usr/lib/x86_64-linux-gnu/libcurl.so: undefined reference to `RAND_status@OPENSSL_1.0.0'
/usr/lib/x86_64-linux-gnu/libcurl.so: undefined reference to `MD5_Final@OPENSSL_1.0.0'
/usr/lib/x86_64-linux-gnu/libcurl.so: undefined reference to `SSL_CTX_set_verify@OPENSSL_1.0.0'
/usr/lib/x86_64-linux-gnu/libcurl.so: undefined reference to `ASN1_TIME_print@OPENSSL_1.0.0'
/usr/lib/x86_64-linux-gnu/libcurl.so: undefined reference to `ENGINE_ctrl@OPENSSL_1.0.0'
/usr/lib/x86_64-linux-gnu/libcurl.so: undefined reference to `CONF_modules_free@OPENSSL_1.0.0'
/usr/lib/x86_64-linux-gnu/libcurl.so: undefined reference to `DES_set_key@OPENSSL_1.0.0'
/usr/lib/x86_64-linux-gnu/libcurl.so: undefined reference to `SSL_set_session@OPENSSL_1.0.0'
/usr/lib/x86_64-linux-gnu/libcurl.so: undefined reference to `X509_EXTENSION_get_data@OPENSSL_1.0.0'
/usr/lib/x86_64-linux-gnu/libcurl.so: undefined reference to `ERR_error_string_n@OPENSSL_1.0.0'
/usr/lib/x86_64-linux-gnu/libcurl.so: undefined reference to `OCSP_cert_status_str@OPENSSL_1.0.0'
/usr/lib/x86_64-linux-gnu/libcurl.so: undefined reference to `SSL_CTX_free@OPENSSL_1.0.0'
/usr/lib/x86_64-linux-gnu/libcurl.so: undefined reference to `X509_check_issued@OPENSSL_1.0.0'
/usr/lib/x86_64-linux-gnu/libcurl.so: undefined reference to `SSL_CTX_set_default_passwd_cb_userdata@OPENSSL_1.0
.0'
/usr/lib/x86_64-linux-gnu/libcurl.so: undefined reference to `OCSP_RESPONSE_free@OPENSSL_1.0.0'
/usr/lib/x86_64-linux-gnu/libcurl.so: undefined reference to `X509_get_pubkey@OPENSSL_1.0.0'
/usr/lib/x86_64-linux-gnu/libcurl.so: undefined reference to `CRYPTO_malloc@OPENSSL_1.0.0'
/usr/lib/x86_64-linux-gnu/libcurl.so: undefined reference to `SSL_CTX_use_certificate_chain_file@OPENSSL_1.0.0'
/usr/lib/x86_64-linux-gnu/libcurl.so: undefined reference to `SSLeay@OPENSSL_1.0.0'
/usr/lib/x86_64-linux-gnu/libcurl.so: undefined reference to `UI_method_get_opener@OPENSSL_1.0.0'
/usr/lib/x86_64-linux-gnu/libcurl.so: undefined reference to `X509_load_crl_file@OPENSSL_1.0.0'
/usr/lib/x86_64-linux-gnu/libcurl.so: undefined reference to `ENGINE_free@OPENSSL_1.0.0'
/usr/lib/x86_64-linux-gnu/libcurl.so: undefined reference to `ASN1_STRING_type@OPENSSL_1.0.0'
/usr/lib/x86_64-linux-gnu/libcurl.so: undefined reference to `ASN1_STRING_data@OPENSSL_1.0.0'
/usr/lib/x86_64-linux-gnu/libcurl.so: undefined reference to `i2t_ASN1_OBJECT@OPENSSL_1.0.0'
/usr/lib/x86_64-linux-gnu/libcurl.so: undefined reference to `SSL_get_error@OPENSSL_1.0.0'
/usr/lib/x86_64-linux-gnu/libcurl.so: undefined reference to `X509_NAME_get_entry@OPENSSL_1.0.0'
/usr/lib/x86_64-linux-gnu/libcurl.so: undefined reference to `SSL_CTX_add_client_CA@OPENSSL_1.0.0'
/usr/lib/x86_64-linux-gnu/libcurl.so: undefined reference to `SSL_get_privatekey@OPENSSL_1.0.0'
/usr/lib/x86_64-linux-gnu/libcurl.so: undefined reference to `OPENSSL_load_builtin_modules@OPENSSL_1.0.0'
/usr/lib/x86_64-linux-gnu/libcurl.so: undefined reference to `CRYPTO_free@OPENSSL_1.0.0'
/usr/lib/x86_64-linux-gnu/libcurl.so: undefined reference to `RAND_add@OPENSSL_1.0.0'
/usr/lib/x86_64-linux-gnu/libcurl.so: undefined reference to `ASN1_STRING_length@OPENSSL_1.0.0'
/usr/lib/x86_64-linux-gnu/libcurl.so: undefined reference to `SSL_CIPHER_get_name@OPENSSL_1.0.0'
/usr/lib/x86_64-linux-gnu/libcurl.so: undefined reference to `ERR_peek_error@OPENSSL_1.0.0'
背景:一個以前可用的項目,然而現在突然無法使用了,編譯時報出上述異常信息
- 出現上述情況的意思很明顯,curl庫找不到openssl對應得鏈接庫:
- 0: 第一步,先看下庫是否真正找不到
ldd /usr/lib/x86_64-linux-gnu/libcurl.so
然後結果顯示:
sbb@uface-gpu-server:~/workspace/ModelServing$ ldd /usr/lib/x86_64-linux-gnu/libcurl.so
/usr/lib/x86_64-linux-gnu/libcurl.so: /home/sbb/anaconda2/lib/libssl.so.1.0.0: no version information available
(required by /usr/lib/x86_64-linux-gnu/libcurl.so)
/usr/lib/x86_64-linux-gnu/libcurl.so: /home/sbb/anaconda2/lib/libssl.so.1.0.0: no version information available
(required by /usr/lib/x86_64-linux-gnu/libcurl.so)
/usr/lib/x86_64-linux-gnu/libcurl.so: /home/sbb/anaconda2/lib/libssl.so.1.0.0: no version information available
(required by /usr/lib/x86_64-linux-gnu/libcurl.so)
/usr/lib/x86_64-linux-gnu/libcurl.so: /home/sbb/anaconda2/lib/libcrypto.so.1.0.0: no version information availab
le (required by /usr/lib/x86_64-linux-gnu/libcurl.so)
linux-vdso.so.1 => (0x00007ffcdc15b000)
libidn.so.11 => /usr/lib/x86_64-linux-gnu/libidn.so.11 (0x00007f6305e54000)
librtmp.so.1 => /usr/lib/x86_64-linux-gnu/librtmp.so.1 (0x00007f6305c38000)
libssl.so.1.0.0 => /home/sbb/anaconda2/lib/libssl.so.1.0.0 (0x00007f63059c2000)
libcrypto.so.1.0.0 => /home/sbb/anaconda2/lib/libcrypto.so.1.0.0 (0x00007f6305582000)
libgssapi_krb5.so.2 => /usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2 (0x00007f6305338000)
liblber-2.4.so.2 => /usr/lib/x86_64-linux-gnu/liblber-2.4.so.2 (0x00007f6305129000)
- 2:就個人而言,庫是能夠鏈接的到,但是可能版本不正確,一種方法是把現在用到的庫給卸載了,暫時不用;
- 3:用了一種比較暴力的方法,將依賴庫加上後綴,讓鏈接庫找不到這個庫,使其默認找系統下的庫;
- 然後就是這種情況了,比較奇怪的是,這兩個庫有什麼區別,不是一樣的嗎,爲什麼其中一個就不行
sbb@uface-gpu-server:~/workspace/ModelServing$ ldd /usr/lib/x86_64-linux-gnu/libcurl.so
linux-vdso.so.1 => (0x00007fff32ab5000)
libidn.so.11 => /usr/lib/x86_64-linux-gnu/libidn.so.11 (0x00007faec7b1d000)
librtmp.so.1 => /usr/lib/x86_64-linux-gnu/librtmp.so.1 (0x00007faec7901000)
libssl.so.1.0.0 => /lib/x86_64-linux-gnu/libssl.so.1.0.0 (0x00007faec7698000)(找的就是他)
libcrypto.so.1.0.0 => /lib/x86_64-linux-gnu/libcrypto.so.1.0.0 (0x00007faec7253000)
libgssapi_krb5.so.2 => /usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2 (0x00007faec7009000)
ps: 如果找不到依賴庫,則需要重新安裝新庫;
參考鏈接:
- 1: 無法鏈接openssl
- 2:鏈接庫可能問題