### ibcurl編譯-windows-x64
文章時間:2020-11-16
網上找了一堆資料,五花八門,幾個文章弄下來才編譯過。這里做一個記錄,也順帶讓想編譯curl庫的朋友,做個借鑒。
首先編譯curl需要 libcurl,openssl,zlib
我放的目錄是 cpps/deps下。

自己可以調整自己所需要的目錄。
libcurl下載地址:[https://curl.se/download.html](https://curl.se/download.html)
openssl下載地址:[https://www.openssl.org/source/](https://www.openssl.org/source/)
zlib下載地址:[http://www.zlib.net/](http://www.zlib.net/)
需要安裝的軟件都知道 perl,python, NASM 其他什么我就不復數,自行百度吧。

我使用的版本號都是目前最新的。
首先打開VS命令工具 我這里只編譯64位。所以選擇X64

## 第一步編譯 zlib
進入到zlib 目錄
輸入 X64
~~~
nmake -f win32/Makefile.msc AS=ml64 LOC="-DASMV -DASMINF -I." OBJA="inffasx64.obj gvmat64.obj inffas8664.obj"
~~~
X86
~~~
nmake -f win32/Makefile.msc LOC="-DASMV -DASMINF" OBJA="inffas32.obj match686.obj"
~~~
##

編譯好后,進入下一步。
第二步 編譯openssl
同樣進入 openssl目錄

輸入 X64
~~~
perl Configure VC-WIN64A --prefix=D:\work\code\apiserver\cpps\deps\openssl-1.1.1h\build no-asm
nmake
nmake install
~~~
X86
~~~
perl Configure VC-WIN32 --prefix=D:\work\code\apiserver\cpps\deps\openssl-1.1.1h\build no-asm
nmake
nmake install
~~~
## 最后可能會有錯誤,提示找不到什么文件,無所謂忽視他。
確定文件夾里面多了一個 build文件夾就可以了 (--prefix= 地址\\build)我用的地址+build文件夾 所以是build 換其他文件夾就是其他文件夾名
編譯好,下一步。
第三步 編譯libcurl
## 編譯好 zlib 與 openssl 后,這里需要把頭文件和lib文件分別拷貝到相應目錄

zlib目錄下:zconf.h , zlib.h , zutil.h 拷貝到 deps/deps/include里面
zlib.lib zdll.lib 拷貝到 deps/deps/lib 里

開始編譯
同樣進入 curl目錄 在進入 winbuild

輸入 X64
~~~
cd winbuild
nmake /f Makefile.vc mode=dll MACHINE=x64 VC=15 ENABLE_IPV6=yes WITH_SSL=dll WITH_ZLIB=dll DEBUG=no
~~~
X86
~~~
cd winbuild
nmake /f Makefile.vc mode=dll VC=15 WITH_SSL=dll ENABLE_IPV6=yes WITH_ZLIB=dll DEBUG=no
~~~
編譯完成后

有個builds文件夾
進入 libcurl-vc15-x64-release-dll-ssl-dll-zlib-dll-ipv6-sspi
分別把include 與 lib拷貝到 deps/deps里面
**使用libcurl記得添加宏定義:BUILDING\_LIBCURL;**
(curl我已經添加好了)
至此編譯結束。 就可以開始編譯 demo/curl 啦。
尾語: 我覺得編譯就是干貨,網上的文章亂七八糟的。 最后說下 dll 部分 openssl 和 libcurl 都生成了 bin目錄 自己拷貝下dll就好了。zlib在根目錄有個zlib1.dll
