Я клонировал git-дерево google-perf.
> ./autogen.sh
> ./configure --enable-frame-pointers --prefix=/usr/
> make
> sudo make install
Все шаги выше были успешными. Я вижу файлы заголовков в /usr/include/gperftools/tcmalloc.h и т. д.
Моя программа
#include <stdio.h>
#include <gpertools/malloc_extension.h>
#include <iostream>
int main()
{
const unsigned int tcmalloc_stats_buf_len_ = 32768;
char tcmalloc_stats_buf[tcmalloc_stats_buf_len_];
MallocExtension::instance()->GetStats(tcmalloc_stats_buf,
tcmalloc_stats_buf_len_);
printf("%s ",tcmalloc_stats_buf);
fflush(stdout);
}
Сборник
g++ -ltcmalloc my_prog.c -o my_prog
my_prog.cc: undefine reference to MallocExtension::instance
Если я закомментирую строку GetStats, компиляция будет работать нормально. Поэтому я предполагаю, что это связано с tcmalloc. Однако, когда я пытаюсь получить доступ к API, это дает мне ошибку.
В чем может быть проблема? Возможно, есть идеи?