编译x86 release版本libcurl,支持https
最近需要封裝一個(gè)支持x86的SDK,之前已經(jīng)實(shí)現(xiàn)了編譯x64 libcurl支持https,但是用同樣的方法,編譯出來的libcurl庫(kù)還是不支持https,折騰了兩天,嘗試了網(wǎng)上所有的編譯libcurl+openssl的方法,無果,直到遇到這篇文章。過程中遇到了點(diǎn)問題項(xiàng)目中使用靜態(tài)庫(kù)報(bào)錯(cuò)(LNK2001 無法解析的外部符號(hào) __imp__IdnToAscii@20 這個(gè)問題還未搞清楚,路過的大神幫忙解答一下(已解決。見下文)),所以最后用的是動(dòng)態(tài)庫(kù),總結(jié)一下。
本文記錄的編譯方式并不需要編譯openssl,本人猜測(cè)是因?yàn)槭褂玫腸url源碼中已經(jīng)自帶了。(希望有人可以幫忙給個(gè)正確答案)
1.下載最新版的curl源碼并解壓:https://curl.haxx.se/download.html。
2.打開VS2017 x86本機(jī)工具命令提示。
3.進(jìn)入winbuild文件夾內(nèi),輸入?nmake /f Makefile.vc mode=dll VC=15 MACHINE=x86 DEBUG=no 進(jìn)行編譯。
(1)mode=dll(static:生成靜態(tài)庫(kù) dll:生成動(dòng)態(tài)庫(kù))
(2)VC是vs的版本(VS2017對(duì)應(yīng)15,VS2015對(duì)應(yīng)14)
(3)根據(jù)項(xiàng)目需要選擇平臺(tái)x86
(4)DEBUG=no(生成release版的庫(kù))DEBUG=yes(生成debug版的庫(kù))
?4.在winbuild同目錄的builds文件夾內(nèi),可以找到我們要使用的動(dòng)態(tài)庫(kù)及頭文件等。
?5.編譯完成的dll獲取方式:https://download.csdn.net/download/weixin_39766005/13105122
6.無法解析的外部符號(hào) __imp__IdnToAscii@20:解決方法:在?項(xiàng)目屬性 - 鏈接器 - 輸入 - 附加依賴項(xiàng)?中加入:Normaliz.lib?即可。
?
?
?
?
?
總結(jié)
以上是生活随笔為你收集整理的编译x86 release版本libcurl,支持https的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 对单片机通信方式(中断和轮询)的理解
- 下一篇: 数字签名是什么