0

我想在 MacOS 上安装Boehm 垃圾收集器垃圾收集器。我查看了指南,但没有帮助;调用brew install libgc什么也没做。这是我尝试运行的示例代码:

#include <gc/gc.h>

int main() {
    void* eight_bytes = GC_MALLOC(8);
}

不幸的是,我收到此错误:

Undefined symbols for architecture x86_64:
  "_GC_malloc", referenced from:
      _main in boehm_invocation-369838.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

有没有人知道在不从源代码构建它的情况下安装这个 GC 的好方法?

4

1 回答 1

1

当我像你一样在 mac 上安装 libgc 时,文件被安装到/usr/local/Cellar/bdw-gc/. 然后,当需要编译我的代码时,我必须运行:

$ LIBGC=/usr/local/Cellar/bdw-gc/VERSION/
$ gcc ... -I$LIBGC/include/ ... $LIBGC/lib/libgc.a other.a ...

当您安装 libgc 时,它不会包含在您的系统路径中。您需要显式添加它。

同样在我的代码中,我使用了:

#include "gc.h"

而不是<gc/gc.h>

于 2020-11-24T20:57:47.910 回答