make错误 redis6_redis安装make失败,make[1]: *** [adlist.o] Error 127....

在尝试安装Redis 3.0.7时遇到了`make`过程中cc编译器未找到和CPU不支持x86-64指令集的错误。首先通过`yum -y install gcc gcc-c++ libstdc++-devel`安装缺失的依赖,但之后依然报错。最终通过添加`make CFLAGS="-march=x86-64"`成功解决了问题,完成了Redis的安装。

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

解压后

执行make后报错:

cd src && make all

make[1]: Entering directory `/home/liuchaofan/redis-3.0.7/src'

CC adlist.o

/bin/sh: cc: command not found

make[1]: *** [adlist.o] Error 127

make[1]: Leaving directory `/home/liuchaofan/redis-3.0.7/src'

make: *** [all] Error 2

提示缺少cc,执行:yum -y install gcc gcc-c++ libstdc++-devel

make继续报错:

cd src && make all

make[1]: Entering directory `/home/liuchaofan/redis-3.0.7/src'

CC adlist.o

adlist.c:1: error: CPU you selected does not support x86-64 instruction set

make[1]: *** [adlist.o] Error 1

make[1]: Leaving directory `/home/liuchaofan/redis-3.0.7/src'

make: *** [all] Error 2

然后加上“make CFLAGS="-march=x86-64"

完美安装

---------------------

本文来自 某某凡人 的优快云 博客 ,全文地址请点击:https://blog.youkuaiyun.com/u013593306/article/details/51228672?utm_source=copy

Redis安装异常解决办法

官网地址:http://redis.io/ 官网下载地址:http://redis.io/download 1. 下载Redis源码(tar.gz),并上传到Linux 2. 解压缩包:tar zxv ...

redis安装全过程

1. 从官网上下载redis. 2.安装gcc 3.进入./redis/src目录下make MALLOC =libc 4.遇到的问题 Redis简介: Redis是一个开源的使用ANSI C语言编写 ...

redis 安装 配置 及启动

linux下安装redis及其中遇到的问题的解决方法1.将下载好的压缩包放到/usr/local目录下# tar xzf redis-3.0.2.tar.gz# cd redis-3.0.2# mak ...

CentOS 7 的 redis 安装

redis 安装 使用下面的命令,下载.解压.编译Redis: $ wget http://download.redis.io/releases/ $ tar xzf redis-x.x.x.tar. ...

Redis 安装碰到问题

一 make 报错 1. 出现如下错误 : cd src && make all make[1]: Entering directory '/xx/xx/redis-x.x.x/src ...

Redis安装与调试

Redis安装与调试 Redis安装与调试linux版本:64位CentOS 6.5 Redis版本:2.8.17  (更新到2014年10月31日) Redis官网:http://redis.io/ ...

Linux Window Redis安装

Linux 下简易的安装过程: 1.源码安装之前要先安装gcc,不然编译会出错, 2.下载源码,去http://download.redis.io/releases/这个文件夹内找想安装的版本,我下载 ...

redis 安装(centos 6.4)

我使用6.4系统,mark一下,其他版本应该也一样. wget wget http://download.redis.io/releases/redis-3.0.6.tar.gz make make ...

linux详细redis安装和php中redis扩展

第一部分:安装redis 希望将redis安装到此目录 1 /usr/local/redis 希望将安装包下载到此目录 1 /usr/local/src 那么安装过程指令如下: 1 2 3 4 5 6 ...

随机推荐

[BZOJ3751][NOIP2014] 解方程

Description 已知多项式方程:a0+a1*x+a2*x^2+...+an*x^n=0 求这个方程在[1,m]内的整数解(n和m均为正整数).   Input 第一行包含2个整数n.m,每两个 ...

Using a Comparison Function for the Key Type

(这是C++系列随笔的第二篇,这一系列是我练习C++而查的资料) C++ Primer 5th. Ed. pp. 425 ---------------------- Using a Comparis ...

Eclipse 代码自动补全

使用Eclipse开发Android时,发现代码补全功能太差,完全不像VS似的,输入一个字母就出现代码提示. 下面是在Eclipse中实现类似VS代码补全的方法: ①打开Eclipse->Win ...

VS2010 rdlc 被除数为0 显示错误号

=Sum(Fields!ROCKNUM.Value/Fields!SEND.Value*100) 当Fields!SEND.Value为0或者空时,显示错误号 修改: =IIF(isnothing(F ...

GotoTest

循环标签跳出循环 public class GotoTest { public static void main(String[] args) { int[][] array={ {1,20,3}, ...

android studio Activity标题栏研究

第一次研究时间:2016/7/30,以下研究主要存在于当前最新版本的android studio上.eclipse请参考 一.头部标题取消 当前版本新建工程在 application中默认主题为 an ...

android 动态string

android开发过程之中,动态的插入string内容时候使用, 例如, 当前时间:

<think>好的,我现在需要帮助用户解决在编译Redis时遇到的错误。用户提到了两个引用,引用1是关于CPU不支持x86-64指令集的错误,引用2是关于LTO版本不匹配和ld返回1退出状态的错误。用户的主要问题是解决编译时的这些错误,尤其是collect2错误make错误。 首先,我需要分析错误信息。引用1中的错误是&ldquo;CPU you selected does not support x86-64 instruction set”,这通常发生在编译时指定的架构与当前CPU不兼容的情况下。可能用户在编译时使用了某些CFLAGS或配置选项,强制指定了不支持的架构,比如-march=native或者其他不兼容的选项。这时候需要检查Makefile或编译配置中的CFLAGS,移除可能引起问题的选项,比如-march=native,或者替换为更通用的架构选项,如-march=x86-64。 接下来是引用2中的错误,LTO版本不匹配。LTO(链接时间优化)需要编译器版本一致,用户可能使用的编译器版本与Redis源代码中使用的LTO版本不一致,导致字节码流不兼容。解决方法可能是禁用LTO,或者在配置时使用CFLAGS="-fno-lto"来关闭LTO优化。此外,用户还可能遇到了链接器错误ld returned 1 exit status,这通常是因为某些依赖库缺失或未正确安装,比如jemalloc的问题,或者系统缺少必要的开发包,如gcc、make等。需要检查系统是否安装了这些依赖,并确保jemalloc正确编译。 另外,用户提到的&ldquo;make错误”可能涉及到多个因素,比如环境变量设置、权限问题、源代码损坏等。可能需要清理之前的编译产物,重新运行configure和make,并确保有足够的权限。如果jemalloc编译失败,可以尝试使用MALLOC环境变量指定为libc,例如make MALLOC=libc,来避免使用jemalloc。 综合这些信息,我需要给出一个逐步的解决方案,涵盖检查编译器选项、处理LTO问题、安装依赖、清理编译环境、处理jemalloc问题以及检查系统架构等方面。同时,生成相关的问题,帮助用户进一步理解可能涉及的方面,比如如何检查CPU支持的指令集,如何禁用LTO等。</think>以下是解决Linux内核编译过程中出现"ld返回1退出状态"和make错误的分步解决方案: ### 步骤1:检查编译器标志配置 1. 清除旧编译产物: ```bash make clean make mrproper ``` 2. 检查Makefile中的`CFLAGS`: 确保没有指定不兼容的CPU架构参数如`-march=native`,可尝试替换为通用参数: ```bash CFLAGS="-march=x86-64 -mtune=generic" make ``` ### 步骤2:处理LTO版本冲突 1. 临时禁用LTO优化: ```bash ./configure CFLAGS="-fno-lto" ``` 2. 或显式指定LTO版本: ```bash CFLAGS="-flto=8" make ``` ### 步骤3:安装必要依赖 ```bash # 对于RedHat/CentOS sudo yum install -y gcc make glibc-devel libstdc++-devel # 对于Debian/Ubuntu sudo apt-get install build-essential libc6-dev libtool automake ``` ### 步骤4:处理jemalloc问题 当遇到`adlist.c`编译错误时: ```bash # 指定使用系统内存分配器 make MALLOC=libc # 或完全禁用jemalloc ./configure --disable-jemalloc ``` ### 步骤5:检查系统架构兼容性 1. 验证CPU支持指令集: ```bash gcc -march=native -Q --help=target | grep march ``` 2. 查看当前内核架构: ```bash uname -m ``` ### 步骤6:完整编译流程建议 ```bash # 清理环境 make distclean # 配置时添加调试信息 ./configure --enable-debug CFLAGS="-O0 -g3" # 使用并行编译加速 make -j$(nproc) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值