5

编译后,我尝试运行libuv示例程序:

#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;
}

但是,当尝试运行时,我收到以下错误:

**/tmp/ccHTpspB.o: In function `main':
main.c:(.text+0x9): undefined reference to `uv_loop_new'
main.c:(.text+0x28): undefined reference to `uv_run'
collect2: error: ld returned 1 exit status**

我哪里做错了 ?

PS:它不适用于#include "uv.h"

4

2 回答 2

6

您需要将 libuv.a 与您的编译代码链接,而链接器不知道在哪里可以找到已编译的 libuv。

为了给你一个更好的答案,我需要看到你编译命令,但同时我强烈推荐这个视频,其中 Ryan 构建了一个示例 libuv 项目。由于 API 发生了变化,他使用的实际代码有点过时,但我认为您会发现他将项目放在一起的开始非常有启发性。

http://vimeo.com/24713213

于 2013-09-21T23:42:01.313 回答
5

在 ubuntu 中,我成功使用了以下命令:

gcc sample.c -luv
于 2015-10-16T17:59:03.993 回答