google-perf git ツリーのクローンを作成しました。
> ./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 にアクセスしようとすると、エラーが発生します。
何が問題なのですか?おそらく何かアイデアはありますか?