我正在尝试在我的 ubuntu 22.04 机器上编译
redis
3.2 源代码。
我的路径上有最新的
gcc
、g++
和 clang
二进制文件。
> gcc --version
gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0
> g++ --version
g++ (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0
> clang --version
clang version 16.0.0
Target: x86_64-unknown-linux-gnu
Thread model: posix
当我尝试使用
> make MALLOC=libc
进行编译时,在构建 lua
依赖项时出现以下错误:
cc -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC='' -DLUA_USE_MKSTEMP -O2 x86_64 -c -o lapi.o lapi.c
cc: warning: x86_64: linker input file unused because linking not done
cc: error: x86_64: linker input file not found: No such file or directory
据我了解,
-c
仅强制编译而NOT允许链接,导致失败。
但我不明白
-c
标志是如何悄悄进入的及其来源。
非常感谢任何帮助,谢谢!
我发现了问题。
我的环境有一个
TARGET_ARCH
变量设置为 x86_64
(export TARGET_ARCH=x86_64
)。
这导致悬空的
x86_64
最终出现在编译命令中,我不知道如何。
当我取消设置时,
make
命令成功运行。