当前位置:网站首页>Libuv的安装及运行使用
Libuv的安装及运行使用
2022-06-24 09:54:00 【ufgnix0802】
Libuv的安装及运行使用
Libuv的官网链接:http://libuv.org/
GitHub下载链接:https://github.com/libuv/libuv
CMake下载链接:https://cmake.org/download/
以下演示使用VS2022
下载安装
由于此次演示运行平台为Windows平台,即需要CMake编译为visual studio项目进行编译运行。
下载后Libuv框架的目录结构如下:

紧接着,使用CMake生成visual studio项目。(打开CMake)如下:


以下信息默认安装即可。

以下内容无需取消勾选,在BUILD_TESTING和LIBUV_BUILD_TESTS中有最基础的模块,可供学习(即如果已经熟练掌握Libuv框架,可以取消BUILD_TESTING和LIBUV_BUILD_TESTS的勾选)。最后再次点击Configure,然后再点击Generate。如下:

最终,可以点击Open Project打开项目(但是需要注意:如果电脑上不仅仅有vs2022,还有其他版本,可能会使用其它版本打开,最好是直接找到build文件目录下的sln文件,鼠标右键使用vs2022打开)

运行使用
使用vs2022打开界面如下:

接下来是项目配置的关键,请各位读着注意。(内容为博主实践所得,仅供参考)
运行uv_run_tests_a项目(生成lib文件)
TIPS:此处也可以尝试直接运行uv_a项目生成uv_a.lib文件(生成的lib文件相同)。
鼠标右键运行uv_run_tests_a项目,如下:


出现如下结果,表示运行成功。

打开文件所在位置,我们会发现不仅仅有exe文件,而且由我们所需要的lib文件,如下:

接下来在当前解决方案下新建一个空项目,如下:




首先,新建一个.c文件,如下:


然后右键TestDemo01项目,属性配置如下信息:

TIPS:关于项目的输出目录和中间目录如何配置,可以参考以下链接,这里不过多阐述:https://ufgnix0802.blog.csdn.net/article/details/121366990
输出目录:$(SolutionDir)\$(ProjectName)\bin/$(Platform)\$(Configuration)
中间目录:$(SolutionDir)\$(ProjectName)\temp/$(Platform)\$(Configuration)
紧接着,配置如下信息:

TIPS:D:\libuv\include所包含的库是必须要引入的,当然路径方面也可以使用跟输出目录和中间目录相同的配置原理(博主这里不进行演示)。
还有需要配置的项,如下:


需要添加的内容有:
iphlpapi.lib
userenv.lib
psapi.lib
ws2_32.lib
libs\uv_a.lib

TIPS:注意确定后,务必点击应用,同上述。
其中,最后一项libs\uv_a.lib,我们需要使用到我们运行uv_run_tests_a项目所生成的lib文件,在当前项目下生成一个libs文件夹,放入以下文件。


最后我们需要引入task.h头文件到当前项目中,如下(该文件可以从libuv/test目录下找寻):

复制至TestDemo01项目中,如下(并将task.h添加至TestDemo01项目):


运行实践
将libuv/test目录下的echo-server.c文件的内容复制至main.c中,如下:


最后在main.c中定义main函数,内容如下:
int main()
{
run_helper_tcp4_echo_server();//调用方式一,调用宏函数
//调用方式二,直接复制宏函数代码
/* loop = uv_default_loop(); if (tcp4_echo_start(TEST_PORT)) return 1; notify_parent_process(); uv_run(loop, UV_RUN_DEFAULT); */
return 0;
}
将该项目设置为启动项目,运行结果如下:

生成的文件信息如下:

以下为使用sokit工具模拟出来的客户端终端的效果:

边栏推荐
- 如何开发短信通知和语音功能医院信息系统(HIS系统)
- What is the resource search platform and how resource search works
- 为什么虚拟机ping的通主机,主机ping不通虚拟机
- ≥ 2012r2 configure IIS FTP
- What is the bin file for? How to open the file correctly
- [the lottery in May has ended, and the list of winners has been announced] special session of techo youth university open course database
- Why use a firewall? What is the function of firewall?
- I pushed my younger brother into Tencent. Look at his benchmark resume!
- 把腾讯搬到云上,治愈了他们的技术焦虑
- Tencent's open source project "Yinglong" has become a top-level project of Apache: the former long-term service wechat payment can hold a million billion level of data stream processing
猜你喜欢
随机推荐
Detailed explanation of SQL Sever basic data types
Canvas pipe animation JS special effect
脚本之美│VBS 入门交互实战
Any 与 TypeVar,让 IDE 的自动补全更好用
喜歡就去行動
【本周六活动】.NET Day in China
[the lottery in May has ended, and the list of winners has been announced] special session of techo youth university open course database
数组怎么转对象,对象怎么转数组
How to convert an array to an object, and how to convert an object to an array
"One good programmer is worth five ordinary programmers!"
Preparation for a series of courses on WordPress applet generation
math_ Summation and derivation of proportional series & derivation of sum and difference of equal powers / difference between two nth power numbers/
MYSQL_精讲数据库数据类型
Centripetalnet: more reasonable corner matching, improved cornernet | CVPR 2020 in many aspects
System design: key features of distributed systems
09. Tencent cloud IOT device side learning -- RRPC and behavior
Group policy export import
What is the resource search platform and how resource search works
Fashionable pop-up mode login registration window
Several stacks of technology sharing: product managers' Online Official answers to several stacks of knowledge








