c/c++ libuv简介与编译

libuv简介

1: 开源跨平台的异步IO库, 网络异步,文件异步等。
2: libuv主页: http://libuv.org/
3: libuv是node.js的底层库;
4: libuv的事件循环模型: epoll, kqueue, IOCP, event ports;
异步 TCP 与 UDP sockets;
DNS 解析
异步文件读写;
信号处理;
高性能定时器;
进程/线程池;


libuv架构图

这里写图片描述


libuv原理

1:异步: 在用户层同时管理多个句柄请求。
2: loop循环等待所有的事件和句柄,管理好所有的这些请求。
3: 当其中一个请求完成后,loop就会监测得到然后调用用户指定的回掉函数处理;
4: 例如loop监听所有的socket,有数据来了后,loop就会处理,然后转到用户指定的回掉函数。
5: libuv编写思想:
1> 创建一个对象, 例如socket;
2> 给loop管理这个对象;
3> 并指定一个回掉函数,当有事件发生的时候调用这个回掉函数, callback;

6: 1>像loop发送请求;
2>指定结束后的回掉函数;
3>当请求结束后,调用这个回掉函数;


libuv的编译

1: 官网下载libuv的代码 ;
https://dist.libuv.org/dist/v1.9.1/

这里写图片描述
这里写图片描述


2: 创建一个libuv的项目:
1> 创建一个项目,分好项目的文件夹;
这里写图片描述
2>将libuv的include, src两个文件夹拉入到编译器编译;
这里写图片描述
3> 添加头文件的搜索路径;
这里写图片描述
4> 配置好windows 上依赖的lib库;
这里写图片描述
把每一个错误符号粘贴到百度
这里写图片描述
找出对应API所需的库
这里写图片描述

#pragma comment(lib, "ws2_32.lib")
#pragma comment(lib,"Psapi.lib")
#pragma comment(lib,"Iphlpapi.lib")
#pragma comment(lib, "Userenv.lib")

这里写图片描述


只对vs有用,一般都把它放到链接器-》命令行

这里写图片描述

这里写图片描述

–》源代码》

猜你喜欢

转载自blog.csdn.net/qq_36482772/article/details/79336275