近期的項目中用到了文件的上傳和下載功能兄纺,于是就發(fā)現(xiàn)了 libcurl 網(wǎng)絡(luò)傳輸庫向族。要使用該庫侦讨,當(dāng)然首先就需要進(jìn)行編譯生成 lib 或 dll 庫吟策,本文將介紹在 Windows 平臺下使用 Visual Studio 2015 工具編譯 libcurl 庫的基本步驟儒士。
下載libcurl源代碼,壓縮包大小大概5MB檩坚,下載完成解壓到一個合適位置着撩。在目錄/projects/Windows
下有可以找到一系列的Visual studio的解決方案。打開與自己安裝版本對應(yīng)的解決方案匾委,在配置管理器中可以看到一系列的解決方案配置拖叙,大體是以靜態(tài)庫還是動態(tài)庫以及是否支持OpenSSL作為區(qū)分的,如果選擇不支持OpenSSL版本赂乐,直接就可以編譯通過了薯鳍。但是不支持OpenSSL的版本將不支持https協(xié)議,然而現(xiàn)在大多數(shù)的訪問都是基于https協(xié)議的挨措,因此我們需要選擇支持OpenSSL的方案配置挖滤,但是直接編譯將會得到一些頭文件無法打開和依賴庫不存在錯誤崩溪,其原因是libcurl的源代碼中并不包含OpenSSL的源代碼,因此我們需要首先下載并編譯OpenSSL庫斩松。
編譯OpenSSL需要使用開始菜單中Virtual studio目錄下的“本機(jī)工具命令提示符”自己選擇使用x86
還是x64
位的版本伶唯。
編譯OpenSSL需要注意一下幾點:
- 下載并安裝perl。
- 下載源代碼 1.0.X版本惧盹,最新版本變化很大乳幸,可能需要比較多的手動配置。
- 配置使用 perl Configure VC-WIN32(或者debug-VC-WIN32) no-asm
- 編譯 nmake -f ms\ntdll.mak
- 編譯完成需要運行測試 nmake -f ms\ntdll.mak test
- 如果需要安裝使用 nmake -f ms\ntdll.mak install
編譯完成之后根據(jù)編譯libcurl時的錯誤提示配置一下OpenSSL的頭文件和庫文件位置岭参,即可通過libcurl的編譯了反惕。
如果想做個簡單實驗,可以在libcurl的網(wǎng)站找到示例代碼演侯。
分割線姿染,2019/04/22
使用最新的OpenSSL代碼(1.1.X)的說明
1.0.X版本的OpenSSL雖然也支持多線程,但是須要我們自己實現(xiàn)兩個回調(diào)函數(shù)秒际,而1.1.X版本之后已經(jīng)不再了悬赏,對于我們使用者無疑方便了一些,但同時也須要注意兩個問題娄徊。
最新的編譯說明:(源代碼中的INSTALL
文件中有非常詳細(xì)的說明)
1.0.X版本編譯之后會生成libeay32.lib
和ssleay32.lib
這兩個庫文件闽颇,我在使用的時候須要連接這兩個庫。但是1.1.X代碼編譯之后已經(jīng)不會再生成這兩個庫文件寄锐,取而代之的是libssl.lib
和libcrypto.lib
兵多,因此在進(jìn)行代碼移植的時候須要注意替換一下。
比較坑爹的是官方文檔中并沒有對此進(jìn)行說明 -_-''