redis 安装错误 jemalloc.h: No such file or directory

本文介绍了在尝试编译安装Redis 4.0.1时遇到的jemalloc内存分配器缺失导致的编译错误,并提供了通过设置MALLOC环境变量为libc来解决此问题的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

错误描述

[root@mysql-rtb-slave redis-4.0.1]# make && make install
cd src && make all
make[1]: Entering directory `/usr/local/src/redis-4.0.1/src'
    CC Makefile.dep
make[1]: Leaving directory `/usr/local/src/redis-4.0.1/src'
make[1]: Entering directory `/usr/local/src/redis-4.0.1/src'
    CC adlist.o
In file included from adlist.c:34:0:
zmalloc.h:50:31: fatal error: jemalloc/jemalloc.h: No such file or directory
 #include <jemalloc/jemalloc.h>
                               ^
compilation terminated.
make[1]: *** [adlist.o] Error 1
make[1]: Leaving directory `/usr/local/src/redis-4.0.1/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

 

解决办法

[root@mysql-rtb-slave redis-4.0.1]# make MALLOC=libc


[root@mysql-rtb-slave redis-4.0.1]# make && make install

 

转载于:https://my.oschina.net/AnnaWu/blog/1608037

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值