### ibcurl编译-windows-x64 文章时间:2020-11-16 网上找了一堆资料,五花八门,几个文章弄下来才编译过。这里做一个记录,也顺带让想编译curl库的朋友,做个借鉴。 首先编译curl需要 libcurl,openssl,zlib 我放的目录是 cpps/deps下。 ![](https://img.kancloud.cn/15/9d/159dba58d1f15565428c1b05d33d47bb_392x202.png) 自己可以调整自己所需要的目录。 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 其他什么我就不复数,自行百度吧。 ![](https://img.kancloud.cn/86/ed/86ed41ae3d9d763748cce1151e245069_140x112.png) 我使用的版本号都是目前最新的。 首先打开VS命令工具 我这里只编译64位。所以选择X64 ![](https://img.kancloud.cn/81/40/81400a6c3a2bda830d52807ca4ec84c0_273x393.png) ## 第一步编译 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" ~~~ ## ![](https://img.kancloud.cn/02/44/024453b60dcd2382af723a7e1cd5969f_905x471.png) 编译好后,进入下一步。 第二步 编译openssl 同样进入 openssl目录 ![](https://img.kancloud.cn/98/0a/980a33ff9e490d30561427d0668fd047_908x468.png) 输入 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文件分别拷贝到相应目录 ![](https://img.kancloud.cn/99/5a/995ac9389026450aaa1d2680575b0a88_499x184.png) zlib目录下:zconf.h , zlib.h , zutil.h 拷贝到 deps/deps/include里面 zlib.lib zdll.lib 拷贝到 deps/deps/lib 里 ![](https://img.kancloud.cn/5b/c8/5bc85498dbdc5ec56aa6cf56bbd98335_597x225.png) 开始编译 同样进入 curl目录 在进入 winbuild ![](https://img.kancloud.cn/16/e6/16e67a66534624caeeef56ee24a05559_917x476.png) 输入 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 ~~~ 编译完成后 ![](https://img.kancloud.cn/bb/4d/bb4d5494c737822c5611875a34bb4034_624x240.png) 有个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 ![](https://img.kancloud.cn/ce/f1/cef1081641eacc3276a399190f9a59f4_152x104.png)