You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu22.04编译Redis3.2遇linker输入文件未找到错误求助

解决Redis 3.2在Ubuntu 22.04编译Lua依赖的错误

错误原因

Redis 3.2的Makefile在Ubuntu 22.04这类新系统与新版GCC环境下,对目标架构的处理存在兼容性问题:原本应作为编译选项的x86_64被错误当成输入文件传递给编译器,再加上-c参数仅执行编译不链接,导致编译器报错找不到该"文件"。

修复步骤

1. 修改Makefile的架构配置

打开Redis源码根目录下的Makefile,找到架构相关的配置块:

ARCH := $(shell uname -m)
ifeq ($(ARCH),x86_64)
        CFLAGS += -march=x86-64
endif

将其修改为:

ARCH := $(shell uname -m)
ifeq ($(ARCH),x86_64)
        CFLAGS += -m64
endif

也可以直接注释掉整个架构判断块,新版GCC会自动识别目标架构。

2. 清理编译残留

执行命令清除已生成的中间文件:

make distclean

3. 重新编译

再次执行编译命令:

make MALLOC=libc

补充方案

如果上述修改仍未解决问题,可尝试为编译器指定旧版C标准兼容模式:
打开src/Makefile(Lua编译相关配置位于该文件),在CFLAGS定义行添加-std=gnu99,之后重复步骤2和3即可。

内容的提问来源于stack exchange,提问作者pan8863

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 17:42:11