Linux操作系统(CentOS 7)编译libuv库(记录自己所踩的坑)

Linux操作系统(CentOS 7)编译libuv库(记录自己所踩的坑)

libuv是一个跨平台的异步I/O库,它主要用于构建高性能的网络应用程序。它被广泛应用于Node.js中,也可以用于其他编程语言的开发中。

首先,安装一些基本工具

autoconf

sudo yum install autoconf

automake

sudo yum install automake

libtool

sudo yum -y install libtool 

下载libuv源码

先进入github官网

https://github.com/libuv/libuv

在这里插入图片描述
下载完毕以后,通过cd进入下载目录

unzip libuv-1.x.zip

再进入解压后的目录

编译libuv库

首先查看自己的gcc版本

gcc --version

如果gcc版本低于4.9,那么进行下面的操作,因为gcc如果版本过低会导致如下错误:

fatal error: stdatomic.h: No such file or directory
#include <stdatomic.h>
                      ^

接下来,我们升级gcc版本

wget https://copr.fedoraproject.org/coprs/hhorak/devtoolset-4-rebuild-bootstrap/repo/epel-7/hhorak-devtoolset-4-rebuild-bootstrap-epel-7.repo -O /etc/yum.repos.d/devtools-4.repo
yum install devtoolset-4-gcc devtoolset-4-binutils devtoolset-4-gcc-c++
scl enable devtoolset-4 bash
ln -s /opt/rh/devtoolset-2/root/usr/bin/* /usr/local/bin/
hash -r

最后,我们查看一下gcc版本。

gcc -v

请添加图片描述
这里版本号为5.2.1,已经满足了要求。接着,我们开始编译libuv库。

./autogen.sh
./configure --prefix=/usr
make
make install

然后在/usr/lib/目录(库文件)下有libuv.so和libuv.a的库文件。头文件(例如uv.h)被安装在/usr/include/。
我们也可以进去看一下

cd /usr/lib

请添加图片描述

cd /usr/include

请添加图片描述
除此以外,我们还可以使用一下指令查看安装是否成功

echo $?

输出结果为0,那就说明我们的安装成功。至此,libuv就已经编译好了。

测试

可以使用官方的一个小demo

1.创建文件。

cd /root
vim hello.c

2.编码

#include <stdio.h>
#include <stdlib.h>
#include <uv.h>

int main() {
    uv_loop_t *loop = malloc(sizeof(uv_loop_t));
    uv_loop_init(loop);

    printf("Hello Word!\n");
    uv_run(loop, UV_RUN_DEFAULT);

    uv_loop_close(loop);
    free(loop);
    return 0;
}

3.编译

gcc hello.c -L/usr/lib/ -luv -o hello

-l:指定库名;-L:指定库路径;此处的/usr/lib/为libuv的库目录,大家需要按照自己的调整。

4.执行

./hello

至此,就可以看见屏幕上打印Hello Word!

多余的话

如果各位看官觉得有帮助,不妨留下个免费的赞再走。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值