1

我正在尝试在 C 上编译一个简单的 gearman worker。我使用 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 测试.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 路径,例如 -L/usr/lib/,使用您的 libgearman.a 存储路径来替换-L/usr/lib/

于 2012-10-12T02:17:47.077 回答
3

可能你需要定义“包含路径”和“lib路径”,例如/usr/local中的头文件“libgearman/gearman.h”,/usr/local/libgearman中的库libgearman.so /lib

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

于 2012-10-12T02:33:23.377 回答
0

如此处所述,您必须将其与 -lgearman 链接

gcc test.c -lgearman
于 2014-06-22T20:50:47.810 回答