问题背景:curl8.5.0 git源码,使用CMake构建VS工程。 CMake 3.26.4
因为需要使用curl里面的websocket功能,所以需要支持ws和wss协议。默认的curl是不支持https,和websocket的。
查找curl官方网站下载编译好的包curl官方下载包
尝试下载了win32的curl工程包,发现都是mingw编译器的,并没有msvc的版本。
使用下载的mingw编译器的包,通过命令行 curl.exe -V
查看官方编译出来的支持哪些协议,发现是支持https,ws,wss的。只可惜vs用不了这个,编译器不适配。只能自己编译。
编译源码中不支持的协议,要么需要三方库的支持【例如https就需要OpenSSL加入才可】
要么就是源码支持,但是默认的配置没有打开,需要自己手动修改配置打开开关。
windows10+msvc,curl编译的2种方式
- 使用项目自带的适配windows的脚本编译
具体编译过程参考我之前写的博文 这里不赘述了。 - 使用CMake构建工程,再对工程修改配置
第一步:CMake构建时,先config一遍,就会出现相关配置项列表,可以自行选择勾选。
比如我这里要选择编译有websocket的,那么我就勾选上,其他的选项是同样的道理。根据你的需求去选择即可。这样选好以后,再次config,generate。
打开生成的vs 工程,编译curl。
生成的curl,我们使用命令行去查看它支持的协议,发现多了一个ws。没有wss是因为它需要openssl,我还没有添加进来。后面添加了我再测试下,是不是可以同时有https 和 wss。
curl websocket模块文档
但是7.86.0从git上看是2022年发的,这都2年了,应该早就过了试验阶段吧