使用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 <jemalloc/jemalloc.h>
                               ^
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 <jemalloc/jemalloc.h>
                               ^
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目录

最近更新

  1. TCP协议是安全的吗?

    2023-12-14 13:06:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-14 13:06:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-14 13:06:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-14 13:06:01       20 阅读

热门阅读

  1. Python程序语言

    2023-12-14 13:06:01       34 阅读
  2. SVG 生成 Vector 资源文件批量及编辑预览工具

    2023-12-14 13:06:01       39 阅读
  3. Springboot整合Redis实现消息发布订阅

    2023-12-14 13:06:01       40 阅读
  4. PHP中如何连接数据库并执行查询?

    2023-12-14 13:06:01       27 阅读
  5. 利用tf-idf对特征进行提取

    2023-12-14 13:06:01       39 阅读
  6. MFC程序中CStdioFile文件的读写

    2023-12-14 13:06:01       25 阅读
  7. Redis简易延时队列

    2023-12-14 13:06:01       45 阅读
  8. AI智能外呼系统销售特别注意的信息点

    2023-12-14 13:06:01       37 阅读
  9. Express中使用Swagger

    2023-12-14 13:06:01       43 阅读