我已經在網上搜索了很多,但是我找不到一個與g ++一起工作的例子,所有例子都使用gcc。 我不斷收到的錯誤是有沒有人用C++封裝函數的例子?
wrap_malloc.o: In function `__wrap_malloc(unsigned int)':
wrap_malloc.cc:(.text+0x20): undefined reference to `__real_malloc(unsigned int)'
wrap_malloc.o: In function `main':
wrap_malloc.cc:(.text+0x37): undefined reference to `__wrap_malloc'
collect2: ld returned 1 exit status
創建此錯誤是下面的代碼(此代碼的工作,如果我用gcc編譯它,並從cstdio更改頁眉到stdio.h之外):
#include <cstdio>
#include <cstdlib>
void *__real_malloc(size_t);
void *__wrap_malloc(size_t c) {
printf("My malloc called with %d\n", c);
return __real_malloc(c);
}
int main(void) {
void *ptr = malloc(12);
free(ptr);
return 0;
}
這是我如何編譯:
wrap_malloc.o: wrap_malloc.cc
g++ -c wrap_malloc.cc -o wrap_malloc.o
wrap_malloc: wrap_malloc.o
g++ wrap_malloc.o -o wrap_malloc -Wl,--wrap,malloc
謝謝!
非常感謝!現在我明白了這個問題。 – 2010-09-29 22:37:33