使用make编译安装时出现错误:fatal error: jemalloc/jemalloc.h: No such file or directory

在linux中使用源码安装软件时,一般都要先安装gcc环境:

yum -y install gcc gcc-c++

今天在编译安装redis时,在使用make命令编译时,出现下面这个错误:

In file included from adlist.c:34:0:
zmalloc.h:50:31: fatal error: jemalloc/jemalloc.h: No such file or directory
 #include 
                               ^
compilation terminated.
In file included from adlist.c:34:0:
zmalloc.h:50:31: fatal error: jemalloc/jemalloc.h: No such file or directory
 #include 
                               ^
compilation terminated.
make[1]: *** [adlist.o] Error 1
make[1]: Leaving directory `/root/run_jar/redis-6.2.8/src'
make: *** [all] Error 2
make[1]: *** [adlist.o] Error 1
make[1]: Leaving directory `/root/run_jar/redis-6.2.8/src'
make: *** [install] Error 2

这种情况一般是因为上次的编译失败,有残留的文件,需要清理后重新编译就可以了。
使用下面这个命令清理并重新编译:

make distclean && make

编译没有问题后再执行安装命令:

make install

网上也有方法是:make MALLOC=libc,也就是重新指定内存分配器。但据说不太好,jemalloc内存分配器在实践中处理内存碎片是要比libc好。且jemalloc内存分配器也是包含在源码包里面的,可以在deps目录下看到jemalloc目录

你可能感兴趣的:(c++,redis,linux)