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 に答える