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