• Libuv的安装及运行使用


    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;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

      将该项目设置为启动项目,运行结果如下:

    效果图

      生成的文件信息如下:

    效果图

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

    效果图

  • 相关阅读:
    1、设计模式的简介
    用vagrant快速创建linux虚拟机
    Elasticsearch的使用
    oracle plsql如何debug触发器
    成功解决TypeError: only size-1 arrays can be converted to Python scalars
    线程安全问题的产生条件、解决方式
    外包干了3个月,技术退步明显。。。。。
    Java NIO三大核心组件
    java新冠病例智能统计与相应预防措施分析系统springboot
    10 个最佳免费 PDF 压缩工具软件
  • 原文地址:https://blog.csdn.net/qq135595696/article/details/125435743