Redis 2.8.18 安裝報錯 error: jemalloc/jemalloc.h: No such file or directory解決方法

Redis 2.8.18 安裝報錯 error: jemalloc/jemalloc.h: No such file or directory解決方法


14181111686687.png

本文爲大家講解的是Redis 2.8.18 安裝報錯 error: jemalloc/jemalloc.h: No such file or directory解決方法



Redis Key-Value數據庫

Redis是一個開源的使用ANSI C語言編寫、支持網絡、可基於內存亦可持久化的日誌型、Key-Value數據庫,並提供多種語言的API。
   

本文爲大家講解的是Redis 2.8.18 安裝報錯 error: jemalloc/jemalloc.h: No such file or directory解決方法,感興趣的同學參考下。

錯誤描述

安裝Redis 2.8.18時報錯:

zmalloc.h:50:31: error: jemalloc/jemalloc.h: No such file or directory
zmalloc.h:55:2: error: #error "Newer version of jemalloc required"
make[1]: *** [adlist.o] Error 1
make[1]: Leaving directory `/data0/src/redis-2.6.2/src'
make: *** [all] Error 2

原因分析

在README 有這個一段話。

Allocator  
---------  
 
Selecting a non-default memory allocator when building Redis is done by setting  
the `MALLOC` environment variable. Redis is compiled and linked against libc  
malloc by default, with the exception of jemalloc being the default on Linux  
systems. This default was picked because jemalloc has proven to have fewer  
fragmentation problems than libc malloc.  
 
To force compiling against libc malloc, use:  
 
    % make MALLOC=libc  
 
To compile against jemalloc on Mac OS X systems, use:  
 
    % make MALLOC=jemalloc


說關於分配器allocator, 如果有MALLOC  這個 環境變量, 會有用這個環境變量的 去建立Redis。

而且libc 並不是默認的 分配器, 默認的是 jemalloc, 因爲 jemalloc 被證明 有更少的 fragmentation problems 比libc。

但是如果你又沒有jemalloc 而只有 libc 當然 make 出錯。 所以加這麼一個參數。

解決辦法

make MALLOC=libc


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章