Функции Jemalloc, не объявленные в этой области
Я установил библиотеку jemalloc на свою машину с Ubuntu
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 ответа
Когда я смотрю на документацию нет функции je_malloc
так что ошибка нормальная
замещать je_malloc
от malloc
Я знаю, что уже слишком поздно, но это может быть полезно для кого-то еще. Если вы хотите использовать
je_
префиксную версию API, которую вы должны добавить
--with-jemalloc-prefix=je_
опция при компиляции библиотеки (в данном случае при запуске скрипта configure).