考虑程序:
#include <gc/gc.h>
int main() {
void* p = GC_MALLOC(15);
}
在 Ubuntu 10.04 LTS 下编译 ( gcc -lgc test.c
)。在 12.04 LTS 下:
/tmp/cc7GcTfU.o: In function `main':
main.c:(.text+0xe): undefined reference to `GC_malloc'
collect2: ld returned 1 exit status
看起来在 10.04 和 12.04 之间,他们已经更改了库而不是在 malloc 替换中编译。或者这就是我认为这个libgc1c2
包裹的描述所说的:
[...] However, it does not work as a drop-in malloc(3) replacement.
有没有一种简单的方法来解决这个问题?(比如说,比手动重新编译 libgc 更简单...)