Linux下編譯並使用 curl 靜態庫

來源:互聯網
上載者:User

windows下面編譯並使用 curl 靜態庫我就不說了, 很簡單。。。。。。

 

linux下面 編譯後產生了 libcurl.a 檔案,

 

但是在程式中靜態連結  這個 libcurl.a 檔案, 會發生很多的連結錯誤, 如果是動態連結 libcurl.a 檔案則不會發生什麼問題。

 

 

/usr/lib/libcurl.a(ssluse.o): In function `Curl_ossl_init':
(.text+0xcd1): undefined reference to `SSL_library_init'

 

 

/usr/lib/libcurl.a(ssluse.o): In function `Curl_ossl_connect_common':
(.text+0x1ba9): undefined reference to `SSL_get1_session'

 

 

上面隨便挑幾個錯誤。。。

 

 

後來經過一番折騰, 突然恍悟, 只需要添加下面的連結, 問題即可解決啊

 

-lcrypto -lidn -lssl /usr/lib/libcurl.a

這樣編譯產生的 可執行程式裡面用 命令

 

 ldd  檔案名稱    執行後, 依賴庫裡面已經沒有  libcurl.so.4 的依賴項了。。。。 

 

 

[root@localhost rtspProxy]# ldd proxy_D<br /> linux-gate.so.1 => (0x00bd5000)<br /> libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00cb7000)<br /> libpthread.so.0 => /lib/libpthread.so.0 (0x009da000)<br /> libcrypto.so.6 => /lib/libcrypto.so.6 (0x00243000)<br /> libidn.so.11 => /usr/lib/libidn.so.11 (0x0061a000)<br /> libssl.so.6 => /lib/libssl.so.6 (0x007b0000)<br /> libm.so.6 => /lib/libm.so.6 (0x009ab000)<br /> libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00b37000)<br /> libc.so.6 => /lib/libc.so.6 (0x00863000)<br /> libdl.so.2 => /lib/libdl.so.2 (0x009d4000)<br /> libz.so.1 => /usr/lib/libz.so.1 (0x009f3000)<br /> libgssapi_krb5.so.2 => /usr/lib/libgssapi_krb5.so.2 (0x003a0000)<br /> /lib/ld-linux.so.2 (0x00841000)<br /> libkrb5.so.3 => /usr/lib/libkrb5.so.3 (0x00411000)<br /> libcom_err.so.2 => /lib/libcom_err.so.2 (0x00df1000)<br /> libk5crypto.so.3 => /usr/lib/libk5crypto.so.3 (0x004be000)<br /> libresolv.so.2 => /lib/libresolv.so.2 (0x0022e000)<br /> libkrb5support.so.0 => /usr/lib/libkrb5support.so.0 (0x004b3000)<br /> libkeyutils.so.1 => /lib/libkeyutils.so.1 (0x0039b000)<br /> libselinux.so.1 => /lib/libselinux.so.1 (0x00101000)<br /> libsepol.so.1 => /lib/libsepol.so.1 (0x00da4000)

 

如果你用上面的選項還是出現連結錯誤,比如下面這樣的東東

 

ldap.c:(.text+0x91): undefined reference to `ldap_url_parse'

 

請你編譯 curl庫的時候  用下面的指令產生 makefile檔案

 

./configure --disable-ldap --disable-ldaps   ,

 

編譯好後在連結即可。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.