linux下编译libuv,linux libuv demo 编译 ,制作make文件

在学习libuv框架时,编译使用它会出现各种各样的情况,现总结一下我发现的最佳实践

第一步

首先在github上去将代码下载到本地

第二步

假设现在你有一个项目是webserver,所在的目录是/tmp/webserver,

则你可以先到你第一步下载好的目录下,输入命令

git archive --prefix="libuv/" HEAD | (cd /tmp/webserver ; tar -xf -)

然后进入到/tmp/webserver下,看目录

第三步

进入到/tmp/webserver/libuv目录下,然后根据readme的要求进行编译

./autogen.sh

./configure

make

过程中,如果出现了什么报错,一般都是缺少了第三方工具,原则就是缺什么补什么就可以。

执行完之后,你会发现在/tmp/webserver/libuv/.libs目录下,会出现很多文件,其中最重要的就是生成的静态连接库libuv.a

第四步

随便编写一个文件webserver.c

// webserver.c

// 只是为了可以运行起来

#include

#include

int64_t counter = 0;

void wait_for_a_while(uv_idle_t* handle) {

counter++;

if (counter >= 10e6)

uv_idle_stop(handle);

}

int main() {

uv_idle_t idler;

uv_idle_init(uv_default_loop(), &idler);

uv_idle_start(&idler, wait_for_a_while);

printf("Idling...\n");

uv_run(uv_default_loop(), UV_RUN_DEFAULT);

uv_loop_close(uv_default_loop());

return 0;

}

第五步

编写Makefile

UV_PATH=$(shell pwd)/libuv

UV_LIB=$(UV_PATH)/.libs/libuv.a

CFLAGS=-g -Wall -I$(UV_PATH)/include

LIBS=

uname_S=$(shell uname -s)

ifeq (Darwin, $(uname_S))

CFLAGS+=-framework CoreServices

endif

ifeq (Linux, $(uname_S))

LIBS=-lrt -ldl -lm -pthread

endif

webserver: webserver.c

gcc $(CFLAGS) -o webserver webserver.c $(UV_LIB) $(LIBS)

运行make

第六步

./webserver

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值