vs2017编译curl 静态库 支持https
接这篇 curl 静态库编译 非https - 、有妖气 - 博客园 (cnblogs.com)
喜报喜报,curl 官方终于开窍了,编译带https的 curl 终于不需要去先弄什么openssl之类的东西了,直接一个包带走,并且编译步骤非常简单,笔者用的版本是curl-8.0.1 其他版本的可能还不行,但这个版本或者以后的应该都可以了
这应该是目前为止最简单的编译x64跟x32的静态库了,我看了其他博客都过于复杂
首先去下载 curl-8.0.1
然后打开vs2017 控制台编译工具
请注意,如果要编译x32的。请用红色框里的,要编译x64的 ,请用写明x64的工具 (比如红框下方的x64本机工具),千万不要搞错了
打开后,cd 到 curl 的目录 下的winbuild 目录
然后执行以下代码中的其中一个
nmake /f Makefile.vc mode=static VC=15 MACHINE=x86 DEBUG=yes
nmake /f Makefile.vc mode=static VC=15 MACHINE=x86 DEBUG=no RTLIBCFG=static
nmake /f Makefile.vc mode=static VC=15 MACHINE=x64 DEBUG=no RTLIBCFG=static
nmake /f Makefile.vc mode=static VC=15 MACHINE=x64 DEBUG=yes
(1)mode=dll(static:生成静态库 dll:生成动态库)
(2)VC是vs的版本(VS2017对应15,VS2015对应14)
(3)根据项目需要选择平台x86
(4)DEBUG=no(生成release版的库)DEBUG=yes(生成debug版的库)
RTLIBCFG=static 有这一句就代表编译的是MT,不然就是MD
但笔者测试,加这句后对debug跟已经release 版本的都可以用,反正看个人需求,笔者个人用已经足够了
编译完成后,在curl 目录下的builds 里 自己找下lib 文件
x64跟x32的过程是一样的
如果使用静态库出现 无法解析的外部符号 __imp__IdnToAscii@20,该符号在函数 _Curl_win32_idn_to_ascii 中被引用
需要添加依赖项:Normaliz.lib