什么是libuv库?
libuv 是一个跨平台的异步 I/O 库,最初是为了 Node.js 而开发的,但现在已经独立出来,并被广泛应用于各种 C/C 应用程序中。libuv 提供了一套用于构建高性能网络应用程序的工具集,支持事件驱动的编程模型,可以用于开发服务器端的应用程序,如 Web 服务器、代理服务器、实时通信服务等。
Node.js调用示例:
事件循环的效果示例:
下载
去libuv的git链接下载
libuv/libuv: Cross-platform asynchronous I/O (github.com)
可以选择默认的v1.x版本下载
也可以选择最新的v1.45.x分支下载
这里选择的是v1.45.x,接着下载
下载安装包后解压缩放在任意位置
VS相关操作
将解压缩后的文件拖拽置VS编译器应用图标
如图所示
等待VS加载项目至完成直至运行这里有uv.dll
没有uv.dll的可以手动点图片里uv.dll右边的小三角选择这个选项
接着VS->生成->全部生成
等待生成完成后去项目根目录 找到out文件一路点到最深处
找到生成的uv.dll和uv.lib
相关项目加载libuv库
创造一个新项目用来测试加载libuv库
引入之前找到的uv.lib和uv.dll文件至项目所在目录
引入libuv的头文件至项目所在目录-这里选择创造一个include文件夹存储
找到解压缩的libuv文件夹里的include文件夹将里面的文件拷贝到测试项目的include文件夹
基本的文件引入完成了,只需要再配置一下就好了
一些VS配置
附加包含目录
附加库目录
附加依赖项
代码测试libuv库是否引入成功
创造一个.cpp文件
示例代码摘自官方文档
代码语言:cpp复制#include <stdio.h>
#include <stdlib.h>
#include <uv.h>
int main()
{
uv_loop_t* loop = (uv_loop_t*)malloc(sizeof(uv_loop_t));
uv_loop_init(loop);
printf("Now quitting.n");
uv_run(loop, UV_RUN_DEFAULT);
uv_loop_close(loop);
free(loop);
return 0;
}
此程序立即退出,因为它没有要处理的事件。一个 libuv 必须告诉 event 循环使用各种 API 来注意事件 功能。
运行成功
libuv的一些示例demo在哪里?
找到下载并且解压缩的目录
以1.45x版本为例
libuv-1.45.xdocscode
这里有许多libuv提供的使用demo可以自行研究学习