在我的C++项目中使用tcmalloc

7
我正在Linux上使用-ltcmalloc_minimal链接tcmalloc库到我的C++程序中,并且已经用apt-get install libgoogle-perftools-dev安装了ltcmalloc库。我需要在我的项目源文件中添加任何包含文件来启用项目中的tcmalloc吗?tcmalloc是否替换了项目使用的所有库中的new/free/malloc?
3个回答

2
除非您专门调用tcmalloc API(即tc_newtc_free),否则不需要包含任何来自tcmalloc的头文件。这是因为malloc和其他内存函数声明已经被调用include <malloc.h>所包含。它们的定义在tcmalloc库中被覆盖(或别名)。在TCMalloc中,标准API(newmallocreallocfreedelete等)以及POSIX API(例如posix_memaligned)要么被别名化(在GCC兼容平台上),要么被重写(Windows等)。唯一需要添加的是在静态链接的情况下,库-ltcmalloc_minimal.a-ltcmalloc.a及其路径。

0
为了关闭这个问题,我只需要在编译过程中包含库,不需要包含任何头文件。

0

是的,你需要包含头文件,因为你需要函数的声明。

对于你的第二个问题,我建议你阅读他们的文档


1
那份文档并没有回答我的问题。 - user470739

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接