在使用gperftools的時候編譯時出現如下問題:
src/system-alloc.cc:270:3: error: ‘failed_’ was not declared in this scope
經過一系列的翻牆,google終於找到了問題所在,原因是用虛擬機導致的,主要見於virtualbox,是因爲操作系統不支持MMAP引起的。
檢查有不有MMAP也很簡單:
$ ./configure | grep mmap
checking for working mmap... no
$ sed -n 1470,1699p config.log
解決方法:
在tcmalloc的config.h文件添加一個宏定義
#define HAVE_MMAP 1
然後,不需要有然後了
總結:
如果有條件一定不要用虛擬機,用虛擬機如果不是特別必要就不要用virtualbox,沒有爲什麼,只是失敗的教訓而已。