在 OS X 上安装 Boehm GC

Installing the Boehm GC on OS X

我想安装 Boehm garbage collector garbage collector on MacOS. I looked at this 指南,但没有帮助;调用 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 的好方法吗?

当我像您一样在 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>