我试图在CentOS 5.8上编译Redis 2.6.4,但在运行make后得到了以下错误
O:在函数
zmalloc_used_memory': /root/redis-2.6.4/src/zmalloc.c:223: undefined reference to__sync_add_and_fetch_4‘collect2: ld中返回1退出状态make1:* redis-服务器错误1 make1:离开目录`/root/redis-2.6.4/src’make:* all Error 2
我也尝试了CFLAGS= -march=i686在src/Makefile,但没有工作。实际上,我不知道该把它放哪儿。我把文件放在了最上面。
发布于 2012-11-20 17:38:09
好吧,我搞定了。我运行以下命令,该命令看起来工作正常(但稍后需要安装tcl8.5)。
make 32bit发布于 2013-02-17 06:28:40
1将CFLAGS= -march=i686添加到src/Makefile顶部
2将src/..make_ OPT=-O2更改为OPT=-O2 -march=i686
3然后是make 32bit
4 make test
这对我有用。
Ps。也许你会遇到tcl问题
1 rpm -qa | grep tcl以查看tcl版本是否为blow 8.5
2如果是,yum remove tcl
3到http://www.linuxfromscratch.org/blfs/view/cvs/general/tcl.html获得最新的一台并安装
4转到redis目录make test
发布于 2014-03-03 04:03:41
正如@HungryCoder所说,简单的“make32bit”命令可以工作。
但有时,如果您已经运行错误,最好在运行之前删除名为.make*的文件。
make distclean
make如果没有帮助,请通过运行以下命令来手动确定CPU的主程序:
export CFLAGS=`uname -m`
make distclean
makehttps://stackoverflow.com/questions/13472631
复制相似问题