【爬坑記錄】undefined undefined reference to *** openssl 無法鏈接

爬坑記錄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: 如果找不到依賴庫,則需要重新安裝新庫;

參考鏈接:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章