龙空技术网

在 linux 系统下 make install 编译安装 redis 出现错误:cc: not found

段子手168 10

前言:

如今你们对“ubuntumake清理已经编译”大致比较关心,朋友们都需要学习一些“ubuntumake清理已经编译”的相关资讯。那么小编也在网上网罗了一些关于“ubuntumake清理已经编译””的相关内容,希望你们能喜欢,看官们一起来了解一下吧!

# 在 linux 系统下(Debian/Ubuntu 系统中 make install) 编译安装 redis 出现错误:/bin/sh: 1: cc: not found

## 一、错误解释:

这个错误表明在使用 /bin/sh 作为脚本解释器时,尝试执行命令 cc,但是在环境变量 $PATH 指定的目录下没有找到名为 cc 的可执行文件。cc 通常是 C 编译器的名称,在某些系统中可能被称为 gcc。

## 二、解决方法:

### 1、安装 gcc

```bashsudo apt-get install build-essential# 查看 gcc 或 cc 安装版本gcc -vcc -v```

### 2、如果 gcc 编译器已安装,确认编译器的实际名称。可能你的系统中 C 编译器不叫 cc,而是叫 gcc。建立 cc 软链接。

```bash# 查看 gcc 或 cc 安装路径which gccwhich cc# 建立 cc 软链接。sudo ln -s /usr/bin/gcc /usr/bin/cc```

### 3、确保编译器 gcc 的安装路径被包含在环境变量 $PATH 中。

```bash# 查看当前的 $PATH 值echo $PATH# 修改用户的 .bashrc、.bash_profile 或 .profile 文件# 或者临时使用 export 添加正确路径PATH=$PATH:/path/to/compiler```

### 4、如果 gcc 已经安装,又出现错误:zmalloc.h:50:10: fatal error: jemalloc/jemalloc.h: No such file or directory)可使用以下命令编译并安装 redis :

jemalloc 是一个用于替代标准内存管理函数的分配器,它可以显著提高多线程应用程序的内存分配性能。也可以尝试安装它。

如果你不想使用 jemalloc,可以在编译 Redis 或其他依赖 zmalloc.h 的项目时指定使用标准的内存分配器。这通常可以通过在编译时定义宏 REDIS_USE_JEMALLOC 为 0 或不定义该宏来实现。

```bash# 不安装 jemalloc 进行编译安装 redismake CFLAGS="-DUSE_JEMALLOC=0" install# 或者执行(上次执行有失败)make distcleanmake && make install# 或者 : 安装 jemalloc 后,进行编译安装 redissudo apt-get jemallocmake install```

标签: #ubuntumake清理已经编译