我试图在我的ubuntu 22.04机器上编译redis
3.2 sourcecode。
我的路径上有最新的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
只强制编译,**不允许链接,导致失败。
但我不知道-c
标志是如何悄悄进入的,也不知道它的来源。
任何帮助是高度赞赏,谢谢!
1条答案
按热度按时间bfnvny8b1#
我发现了问题。
我的环境中有一个
TARGET_ARCH
变量设置为x86_64
(export TARGET_ARCH=x86_64
)。这导致了悬空的
x86_64
在编译命令中结束,我不知道是怎么回事。当我取消设置时,
make
命令成功运行。