包含__malloc_hook 的C++代码在linux上需要怎么编译
时间: 2023-11-27 10:49:17 浏览: 72
pb_buffer_malloc.rar_The Store_malloc
如果你的代码中包含了__malloc_hook,那么需要在编译时链接 glibc 库并指定编译选项 -ldl。具体步骤如下:
1. 编写代码并保存为 example.cpp:
```c++
#include <stdio.h>
#include <malloc.h>
void* my_malloc(size_t size) {
printf("my_malloc called, size=%lu\n", size);
return malloc(size);
}
int main() {
__malloc_hook = my_malloc;
int* p = (int*)malloc(sizeof(int));
printf("p = %p\n", p);
free(p);
return 0;
}
```
2. 使用 g++ 编译代码:
```bash
g++ example.cpp -ldl
```
在编译时需要链接 glibc 库并指定编译选项 -ldl。
3. 运行编译后的可执行文件:
```bash
./a.out
```
输出结果为:
```
my_malloc called, size=4
p = 0x5637d5a5c260
```
可以看到,程序成功调用了自定义的 my_malloc 函数。
阅读全文