我试图在CentOS 5.8上编译Redis 2.6.4,但在运行make
zmalloc.o:在函数
zmalloc_used_memory': /root/redis-2.6.4/src/zmalloc.c:223: undefined reference to
__ sync_add_and_fetch_4'collect2:ld返回1退出状态make [1]: * [redis-server]错误1 make [1]:离开目录`/root/redis-2.6.4/src'make:* [all]错误2
我还在CFLAGS= -march=i686
中尝试了src/Makefile
,但没有效果。实际上,我不知道把它放在哪里。我把文件放在顶部。
答案 0 :(得分:2)
1将CFLAGS= -march=i686
添加到src / Makefile top
2将src / .make_settings OPT=-O2
更改为OPT=-O2 -march=i686
3然后make 32bit
4 make test
这适合我。
聚苯乙烯。也许你会遇到tcl
问题
1 rpm -qa | grep tcl
看看tcl版本是否打击8.5
2如果是yum remove tcl
3前往http://www.linuxfromscratch.org/blfs/view/cvs/general/tcl.html获取最新版本并安装
4转到redis目录make test
答案 1 :(得分:1)
好的,我完成了。我运行以下命令似乎工作正常(虽然以后我需要安装tcl8.5)。
make 32bit
答案 2 :(得分:0)
正如@HungryCoder所说,简单的“make 32bit”命令会起作用。
但有时,如果您已经遇到错误,最好在运行之前删除名为.make *的文件。
make distclean
make
如果没有帮助,请尝试通过运行以下命令手动找出您的CPU拱门:
export CFLAGS=`uname -m`
make distclean
make
答案 3 :(得分:0)
我在编译时遇到了一些问题,首先安装以下依赖项解决了这个问题:
sudo yum -y install libstdc++*
sudo yum -y install libstdc++*.i686
然后我可以毫无问题地运行正确的制作
make 32bit
我希望这有助于某人。