Функции 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).

Другие вопросы по тегам