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

时间:2019-01-09 05:48:32

标签: g++ jemalloc

我通过以下方式在我的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,并将标头更改为"jemalloc/jemalloc.h"(而不是<..>),并使用g++ -L./jemalloc/lib example.cpp链接到它,但这没有帮助。

2 个答案:

答案 0 :(得分:0)

当我查看documentation时,没有功能je_malloc,因此错误是正常的

je_malloc替换为malloc

答案 1 :(得分:0)

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