未在此范围内声明的 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_
选项(在这种情况下,当 运行 配置脚本时)。
我通过
在我的 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_
选项(在这种情况下,当 运行 配置脚本时)。