Windows 下編譯 libcurl 庫

近期的項目中用到了文件的上傳和下載功能兄纺,于是就發(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ì)的說明)

openssl編譯.png

1.0.X版本編譯之后會生成libeay32.libssleay32.lib這兩個庫文件闽颇,我在使用的時候須要連接這兩個庫。但是1.1.X代碼編譯之后已經(jīng)不會再生成這兩個庫文件寄锐,取而代之的是libssl.liblibcrypto.lib兵多,因此在進(jìn)行代碼移植的時候須要注意替換一下。
比較坑爹的是官方文檔中并沒有對此進(jìn)行說明 -_-''

TIM圖片20190422110449.png

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末橄仆,一起剝皮案震驚了整個濱河市剩膘,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌盆顾,老刑警劉巖怠褐,帶你破解...
    沈念sama閱讀 206,378評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異您宪,居然都是意外死亡奈懒,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評論 2 382
  • 文/潘曉璐 我一進(jìn)店門宪巨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來磷杏,“玉大人,你說我怎么就攤上這事揖铜≤罘幔” “怎么了?”我有些...
    開封第一講書人閱讀 152,702評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長贿肩。 經(jīng)常有香客問我峦椰,道長,這世上最難降的妖魔是什么汰规? 我笑而不...
    開封第一講書人閱讀 55,259評論 1 279
  • 正文 為了忘掉前任汤功,我火速辦了婚禮,結(jié)果婚禮上溜哮,老公的妹妹穿的比我還像新娘滔金。我一直安慰自己,他們只是感情好茂嗓,可當(dāng)我...
    茶點故事閱讀 64,263評論 5 371
  • 文/花漫 我一把揭開白布餐茵。 她就那樣靜靜地躺著,像睡著了一般述吸。 火紅的嫁衣襯著肌膚如雪忿族。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,036評論 1 285
  • 那天蝌矛,我揣著相機(jī)與錄音道批,去河邊找鬼。 笑死入撒,一個胖子當(dāng)著我的面吹牛隆豹,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播茅逮,決...
    沈念sama閱讀 38,349評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼璃赡,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了献雅?” 一聲冷哼從身側(cè)響起鉴吹,我...
    開封第一講書人閱讀 36,979評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎惩琉,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體夺荒,經(jīng)...
    沈念sama閱讀 43,469評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡瞒渠,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,938評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了技扼。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片伍玖。...
    茶點故事閱讀 38,059評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖剿吻,靈堂內(nèi)的尸體忽然破棺而出窍箍,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 33,703評論 4 323
  • 正文 年R本政府宣布椰棘,位于F島的核電站纺棺,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏邪狞。R本人自食惡果不足惜祷蝌,卻給世界環(huán)境...
    茶點故事閱讀 39,257評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望帆卓。 院中可真熱鬧巨朦,春花似錦、人聲如沸剑令。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽吁津。三九已至棚蓄,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間腺毫,已是汗流浹背癣疟。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留潮酒,地道東北人睛挚。 一個月前我還...
    沈念sama閱讀 45,501評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像急黎,于是被迫代替她去往敵國和親扎狱。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,792評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 前言 編譯libcurl是一件繁瑣但并不復(fù)雜的事情勃教,因為需要多個庫的配合淤击。編譯前務(wù)必提前準(zhǔn)備好zlib庫、open...
    ORCLee閱讀 3,037評論 0 0
  • 最近因需要嘗試編譯了一次Vbox故源,官方論壇上只有32位環(huán)境的編譯教程污抬,所以這次在64位、特別是中文環(huán)境上遇到不少坑...
    MushiUta閱讀 5,653評論 0 6
  • openssl版本:openssl-1.0.2e 在Windows環(huán)境下編譯openssl需要perl支持绳军,安裝A...
    四明羽客閱讀 5,991評論 0 2
  • 原型圖 管理員登錄 登錄成功進(jìn)入首頁(A1) 否則alert("賬號或密碼錯誤印机!"); 首頁A1 | 書名 ...
    李景磊閱讀 457評論 0 0
  • “富貴不能淫,貧賤不能移”這種美德當(dāng)今社會可謂鳳毛麟角门驾,在狗身上卻普遍存在這著射赛!即使主人淪為乞丐,它也不...
    大亂亂閱讀 367評論 0 0