编译redis2.6.7报zmalloc.c:223: undefined reference to__sync_add_and_fetch_4'解决方法

本文记录了Redis编译过程中遇到的zmalloc错误及解决方案,并详细介绍了为解决Redis测试依赖而安装最新版TCL的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

部分转载于http://blog.youkuaiyun.com/hmc20071120015/article/details/8142454,以变日后查阅。

zmalloc.o: In function `zmalloc_used_memory':
/root/redis-2.6.7/src/zmalloc.c:223: undefined reference to `__sync_add_and_fetch_4'
collect2: ld returned 1 exit status
make[1]: *** [redis-server] Error 1
make[1]: Leaving directory `/root/redis-2.6.7/src'
make: *** [all] Error 2


编辑了下src/.make_settings里的OPT,改为OPT=-O2 -march=i686。

make test

You need 'tclsh8.5' in order to run the Redis test
make: *** [test] Error 1

安装最新的tcl8.5.12解决。

安装过程:

./configure --prefix=/root/tcl --enable-shared

make

sed -e "s@^\(TCL_SRC_DIR='\).*@\1/usr/include'@" \ -e "/TCL_B/s@='\(-L\)\?.*unix@='\1/usr/lib@" \ -i tclConfig.sh

make install

cp /root/tcl/lib/libtcl8.5.so /usr/lib/

cp /root/tcl/bin/tclsh8.5 /usr/bin/

chmod -v 755 /usr/lib/libtcl8.5.so

ldconfig

 ldconfig -p | grep tcl
        libtcl8.5.so (libc6) => /usr/lib/libtcl8.5.so
        libtcl8.4.so (libc6) => /usr/lib/libtcl8.4.so


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值