We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
在学习libuv框架时,编译使用它会出现各种各样的情况,现总结一下我发现的最佳实践
第一步
首先在github上去将代码下载到本地
第二步
假设现在你有一个项目是webserver,所在的目录是/tmp/webserver,
webserver
/tmp/webserver
则你可以先到你第一步下载好的目录下,输入命令
git archive --prefix="libuv/" HEAD | (cd /tmp/webserver ; tar -xf -)
然后进入到/tmp/webserver下,看目录
第三步
进入到/tmp/webserver/libuv目录下,然后根据readme的要求进行编译
/tmp/webserver/libuv
./autogen.sh ./configure make
过程中,如果出现了什么报错,一般都是缺少了第三方工具,原则就是缺什么补什么就可以。
执行完之后,你会发现在/tmp/webserver/libuv/.libs目录下,会出现很多文件,其中最重要的就是生成的静态连接库libuv.a
/tmp/webserver/libuv/.libs
libuv.a
第四步
随便编写一个文件webserver.c
webserver.c
// webserver.c // 只是为了可以运行起来 #include <stdio.h> #include <uv.h> 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
The text was updated successfully, but these errors were encountered:
沙发??!🛋
Sorry, something went wrong.
No branches or pull requests
在学习libuv框架时,编译使用它会出现各种各样的情况,现总结一下我发现的最佳实践
第一步
首先在github上去将代码下载到本地
第二步
假设现在你有一个项目是
webserver
,所在的目录是/tmp/webserver
,则你可以先到你第一步下载好的目录下,输入命令
然后进入到
/tmp/webserver
下,看目录第三步
进入到
/tmp/webserver/libuv
目录下,然后根据readme的要求进行编译过程中,如果出现了什么报错,一般都是缺少了第三方工具,原则就是缺什么补什么就可以。
执行完之后,你会发现在
/tmp/webserver/libuv/.libs
目录下,会出现很多文件,其中最重要的就是生成的静态连接库libuv.a
第四步
随便编写一个文件
webserver.c
第五步
编写Makefile
运行make
第六步
./webserver
The text was updated successfully, but these errors were encountered: