1

Cで単純なギアマンワーカーをコンパイルしようとしています.Macを使用しています。コードは次のとおりです。

#include <libgearman/gearman.h>
int main(void) {
    gearman_worker_st worker;
    gearman_worker_create(&worker);
    gearman_worker_add_server(&worker, "localhost", 4730);
    return 0;
}

私がそれをコンパイルしようとすると:

#gcc test.c
アーキテクチャ x86_64 の未定義のシンボル:
  「_gearman_worker_add_server」、参照先:
      ccLUuf8y.o の _main
  「_gearman_worker_create」、以下から参照:
      ccLUuf8y.o の _main
ld: アーキテクチャ x86_64 のシンボルが見つかりません
collect2: ld が 1 つの終了ステータスを返しました

私はgccをgearmanとリンクしなければならないことを知っていますが、試してみると:

#gcc test.c -lgearman
ld: -lgearman のライブラリが見つかりません
collect2: ld が 1 つの終了ステータスを返しました

何か案は?

4

3 に答える 3

3

「インクルードパス」と「libパス」を定義する必要があるかもしれません。たとえば、/ usr/localのヘッドファイル「libgearman/gearman.h」、/ usr / local/libgearmanのライブラリlibgearman.soなどです。 / lib

gcc -I / usr / local -L / usr / local / libgearman / libtest.c-lgearmanのようなコンパイルコマンド

于 2012-10-12T02:33:23.377 に答える
3

-L/usr/lib/libgearman.aのように lib パスを定義する必要があるかもしれません。 -L/usr/lib/

于 2012-10-12T02:17:47.077 に答える