如何用C编译简单的齿轮工人?

时间:2012-10-12 01:57:44

标签: c gcc gearman

我正在尝试在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 
Undefined symbols for architecture x86_64:
  "_gearman_worker_add_server", referenced from:
      _main in ccLUuf8y.o
  "_gearman_worker_create", referenced from:
      _main in ccLUuf8y.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status

我知道我必须将gcc与gearman联系起来但是在尝试时:

#gcc test.c -lgearman
ld: library not found for -lgearman
collect2: ld returned 1 exit status

有什么想法吗?

3 个答案:

答案 0 :(得分:3)

也许你需要定义lib路径,比如 -L/usr/lib/,使用您的libgearman.a存储路径替换-L/usr/lib/

答案 1 :(得分:3)

也许您需要定义“包含路径”和“lib路径”, 例如, / usr / local中的头文件“libgearman / gearman.h”, / usr / local / libgearman / lib

中的库libgearman.so

编译命令就像, gcc -I / usr / local -L / usr / local / libgearman / lib test.c -lgearman

答案 2 :(得分:0)

如上所述here,您必须将其与-lgearman

相关联
gcc test.c -lgearman