如何用libuv编译最小程序?
发布时间:2020-12-16 09:48:03 所属栏目:百科 来源:网络整理
导读:自从我用C编写程序以来已经有一段时间了,即使如此,我总是发现实际的编译和链接非常令人困惑. 因为我最近一直在玩node.js,所以我已经开始好奇地开始盯着我看看libuv了. 我找到了一些优秀的指南,但发现实际的编译部分已被大量跳过.很可能是由于公平的假设,任何
自从我用C编写程序以来已经有一段时间了,即使如此,我总是发现实际的编译和链接非常令人困惑.
因为我最近一直在玩node.js,所以我已经开始好奇地开始盯着我看看libuv了. 我找到了一些优秀的指南,但发现实际的编译部分已被大量跳过.很可能是由于公平的假设,任何有趣的人都可能与gcc合作很多. 我已经从gtihub下载了最新的libuv作为zip并已解压缩到一个工作文件夹中.我按照README.md编译并安装它.所有这一切都很顺利,没有任何问题. 我要编译的代码来自http://nikhilm.github.io/uvbook/basics.html #include <stdio.h> #include <uv.h> int main() { uv_loop_t *loop = uv_loop_new(); printf("Now quitting.n"); uv_run(loop,UV_RUN_DEFAULT); return 0; } 我把它保存为main.c 这是我正在使用的Makefile,我怀疑这是问题,因为它是从各种来源拼凑而成的,而我在这方面的知识至少可以说是阴天. main: main.c gcc -g -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I./libuv-master/include/ -o main main.c -pthread -lrt -lm clean: rm main 这是运行make的结果. /tmp/ccJbU03z.o: In function `main': /home/tom/libuv-test/main.c:5: undefined reference to `uv_loop_new' /home/tom/libuv-test/main.c:8: undefined reference to `uv_run' collect2: error: ld returned 1 exit status 我意识到这不是libuv特有的,但这只是我所处的位置,所以任何帮助都会非常感激. 我正在使用Ubuntu 13.04 解决方法
我可以做的最简单的Makefile是这个,但显然它特定于我的系统上的libuv.a的位置.我欢迎这个答案的编辑/新帖子提供更通用的编译行.
main: main.c gcc -o main main.c /usr/local/lib/libuv.a -pthread clean: rm main (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |