redis:编译时报错 /bin/sh: cc: command not found

在编译Redis时遇到了/bin/sh: cc: command not found的问题。该错误通常表明系统中没有找到C编译器。解决方法包括安装缺失的编译器,如GCC或Clang,或者确保编译环境已正确配置。

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

[root@hadoop01 redis-3.0.0]# make
cd src && make all
make[1]: Entering directory `/usr/local/redis-3.0.0/src'
rm -rf redis-server redis-sentinel redis-cli redis-benchmark redis-check-dump redis-check-aof *.o *.gcda *.gcno *.gcov redis.info lcov-html
(cd ../deps && make distclean)
make[2]: Entering directory `/usr/local/redis-3.0.0/deps'
(cd hiredis && make clean) > /dev/null || true
(cd linenoise && make clean) > /dev/null || true
(cd lua && make clean) > /dev/null || true
(cd jemalloc && [ -f Makefile ] && make distclean) > /dev/null || true
(rm -f .make-*)
make[2]: Leaving directory `/usr/local/redis-3.0.0/deps'
(rm -f .make-*)
echo STD=-std=c99 -pedantic >> .make-settings
echo WARN=-Wall -W >> .make-settings
echo OPT=-O2 >> .make-settings
echo MALLOC=jemalloc >> .make-settings
echo CFLAGS= >> .make-settings
echo LDFLAGS= >> .make-settings
echo REDIS_CFLAGS= >> .make-settings
echo REDIS_LDFLAGS= >> .make-settings
echo PREV_FINAL_CFLAGS=-std=c99 -pedantic -Wall -W -O2 -g -ggdb   -I../deps/hiredis -I../deps/linenoise -I../deps/lua/src -DUSE_JEMALLOC -I../deps/jemalloc/include >> .make-settings
echo PREV_FINAL_LDFLAGS=  -g -ggdb -rdynamic >> .make-settings
(cd ../deps && make hiredis linenoise lua jemalloc)
make[2]: Entering directory `/usr/local/redis-3.0.0/deps'
(cd hiredis && make clean) > /dev/null || true
(cd linenoise && make clean) > /dev/null || true
(cd lua && make clean) > /dev/null || true
(cd jemalloc && [ -f Makefile ] && make distclean) > /dev/null || true
(rm -f .make-*)
(echo "" > .make-ldflags)
(echo "" > .make-cflags)
MAKE hiredis
cd hiredis && make static
make[3]: Entering directory `/usr/local/redis-3.0.0/deps/hiredis'
gcc -std=c99 -pedantic -c -O3 -fPIC  -Wall -W -Wstrict-prototypes -Wwrite-strings -g -ggdb  net.c
make[3]: gcc:命令未找到
make[3]: *** [net.o] 错误 127
make[3]: Leaving directory `/usr/local/redis-3.0.0/deps/hiredis'
make[2]: *** [hiredis] 错误 2
make[2]: Leaving directory `/usr/local/redis-3.0.0/deps'
make[1]: [persist-settings] 错误 2 (忽略)
    CC adlist.o
/bin/sh: cc: command not found
make[1]: *** [adlist.o] 错误 127
make[1]: Leaving directory `/usr/local/redis-3.0.0/src'
make: *** [all] 错误 2

提示gcc和cc命令令未找到

解决方法

yum -y install gcc gcc-c++ libstdc++-devel
<think>好的,我现在需要解决用户提到的Redis 7.2.4编译时报错“pkg-config not found”的问题。首先,我应该回顾用户提供的引用内容,看看有没有相关的线索。用户引用的内容中,有几个关于Redis安装和编译错误的解决方案,比如遇到jemalloc问题时需要清理并重新make,或者安装tcl来通过测试。不过现在的问题是关于pkg-config未找到,我需要先了解这个工具的作用。 pkg-config是一个用来帮助编译时定位头文件和库文件的工具,很多开源项目在编译时会依赖它。如果系统没有安装pkg-config,编译过程中可能会报错。因此,解决这个问题的第一步应该是检查是否安装了pkg-config,如果没有安装,就需要安装它。 接下来,我需要确定在不同Linux发行版中安装pkg-config的命令。比如,在基于Debian的系统(如Ubuntu)中,可以使用apt-get install pkg-config,而在基于Red Hat的系统(如CentOS)中,可能需要使用yum install pkgconfig或者dnf install pkgconf-pkg-config。用户提供的引用中有提到使用yum安装tcl的例子,这可能意味着用户使用的是CentOS或类似的系统,所以可能需要使用yum命令来安装pkg-config。 另外,安装完pkg-config之后,可能需要确保其路径在系统的环境变量中,或者重新运行配置脚本。有时候,即使安装了pkg-config,如果之前的编译过程中已经生成了缓存或配置,可能需要清理之前的编译文件,比如执行make distclean,然后重新configure和make。这在引用[2]中提到过,当遇到jemalloc问题时,清理后再编译解决了问题,所以同样的步骤可能适用。 另外,用户可能还缺少其他依赖库,比如zlib、openssl等,这些也可能导致pkg-config找不到相关的包。因此,建议用户安装常见的开发工具链,例如build-essential(在Ubuntu中)或Development Tools组(在CentOS中),以确保所有编译依赖都被满足。 最后,如果问题依然存在,可能需要手动指定某些库的路径,或者检查pkg-config的版本是否过旧,需要升级。但这种情况相对较少,大部分情况下安装pkg-config就能解决问题。 总结一下步骤: 1. 安装pkg-config工具。 2. 清理之前的编译文件。 3. 重新运行配置和编译。 4. 检查其他可能的依赖项。 在用户提供的引用中,特别是引用[2]提到了使用make distclean来解决类似问题,所以这个步骤应该包含在解决方案中。同时,引用[3]和[4]提到了通过源码安装Redis的过程,可能需要确保所有步骤正确执行。 现在需要将这些思路整理成一个清晰的解决方案,分步骤指导用户操作,并确保语言简洁易懂,符合用户的需求。同时,按照用户的要求,生成相关问题,帮助用户进一步了解可能遇到的编译问题。</think>### Redis 7.2.4 编译报错 `pkg-config not found` 解决方案 #### 问题原因 `pkg-config` 是用于在编译过程中自动定位头文件和库文件的工具。若系统未安装该工具,Redis 编译时会因依赖缺失而报错。 --- #### 逐步解决方法 1. **安装 `pkg-config` 工具** - **Debian/Ubuntu 系统**: ```bash sudo apt-get update && sudo apt-get install pkg-config ``` - **CentOS/RHEL 系统**: ```bash sudo yum install pkgconfig # CentOS 7及以下 sudo dnf install pkgconf-pkg-config # CentOS 8及以上 ``` 2. **安装其他编译依赖(可选)** 若仍报错,可能是其他基础开发工具缺失: - **Debian/Ubuntu**: ```bash sudo apt-get install build-essential ``` - **CentOS/RHEL**: ```bash sudo yum groupinstall "Development Tools" ``` 3. **清理并重新编译** - 进入 Redis 源码目录,清理之前的编译缓存[^2]: ```bash make distclean ``` - 重新编译并安装: ```bash make sudo make install ``` 4. **验证安装** ```bash pkg-config --version # 应输出版本号(如 0.29.2) redis-server --version # 检查 Redis 是否编译成功 ``` --- #### 补充说明 - 若手动指定库路径(如自定义安装依赖库),可通过环境变量设置: ```bash export PKG_CONFIG_PATH=/path/to/your/lib/pkgconfig ``` - 若系统已安装 `pkg-config` 但版本过低,需通过源码升级(参考[^1]中源码编译思路)。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值