未在此范围内声明的 Jemalloc 函数

Jemalloc functions not declared in this scope

我通过

在我的 ubuntu 机器上安装了 jemalloc 库
sudo apt-get install libjemalloc-dev

现在,我无法编译使用 jemalloc 库的简单代码:

#include <jemalloc/jemalloc.h>
#include <iostream>

int main() {
    void* ptr = je_malloc(16);
    return 0;
}

我用g++ -ljemalloc example.cpp编译的。

我得到的错误是

example.cpp: In function ‘int main()’:
example.cpp:5:24: error: ‘ je_malloc’ was not declared in this scope
  void* ptr = je_malloc(16);

我什至尝试使用它的源文件安装 jemalloc,并将我的 header 更改为 "jemalloc/jemalloc.h"(而不是 <..>),并使用 g++ -L./jemalloc/lib example.cpp 链接到它,但是它没有帮助。

我看documentation没有函数je_malloc,所以报错是正常的

je_malloc替换为malloc

我知道为时已晚,但它可能对其他人有用。如果你想使用 API 的 je_ 前缀版本,你必须在编译库时添加 --with-jemalloc-prefix=je_ 选项(在这种情况下,当 运行 配置脚本时)。