compile error in memcached gem

本文记录了在使用gem安装memcached过程中遇到的编译错误,并提供了解决方案,即通过安装libsasl2-dev来解决未声明标识符的问题。

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

gem install memcached

Skipping a lot of compiling information; this was the error we received:

creating Makefile

make
gcc -I. -I/usr/lib/ruby/1.8/i386-linux -I/usr/lib/ruby/1.8/i386-linux -I. -fPIC -I/usr/lib/ruby/gems/1.8/gems/memcached-0.19.2/ext/include -L/usr/lib/ruby/gems/1.8/gems/memcached-0.19.2/ext/lib -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -Wall -fno-strict-aliasing -fPIC -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -Wall -fno-strict-aliasing -fPIC -c rlibmemcached_wrap.c
rlibmemcached_wrap.c: In function '_wrap_MemcachedSt_sasl_callbacks_set':
rlibmemcached_wrap.c:6669: error: 'sasl_callback_t' undeclared (first use in this function)
rlibmemcached_wrap.c:6669: error: (Each undeclared identifier is reported only once
rlibmemcached_wrap.c:6669: error: for each function it appears in.)
rlibmemcached_wrap.c:6669: error: 'arg2' undeclared (first use in this function)
rlibmemcached_wrap.c:6669: error: expected expression before ')' token
rlibmemcached_wrap.c:6687: error: expected expression before ')' token
rlibmemcached_wrap.c:6688: error: 'struct memcached_st' has no member named 'sasl_callbacks'
rlibmemcached_wrap.c:6688: error: expected ')' before 'const'
rlibmemcached_wrap.c:6688: error: expected ';' before 'arg2'
rlibmemcached_wrap.c: In function '_wrap_MemcachedSt_sasl_callbacks_get':
rlibmemcached_wrap.c:6700: error: 'sasl_callback_t' undeclared (first use in this function)
rlibmemcached_wrap.c:6700: error: 'result' undeclared (first use in this function)
rlibmemcached_wrap.c:6711: error: expected expression before ')' token
rlibmemcached_wrap.c:6711: error: 'struct memcached_st' has no member named 'sasl_callbacks'
rlibmemcached_wrap.c: In function '_wrap_memcached_set_sasl_callbacks':
rlibmemcached_wrap.c:12021: error: 'sasl_callback_t' undeclared (first use in this function)
rlibmemcached_wrap.c:12021: error: 'arg2' undeclared (first use in this function)
rlibmemcached_wrap.c:12021: error: expected expression before ')' token
rlibmemcached_wrap.c:12039: error: expected expression before ')' token
rlibmemcached_wrap.c:12040: warning: implicit declaration of function 'memcached_set_sasl_callbacks'
rlibmemcached_wrap.c:12040: error: expected ')' before 'const'
rlibmemcached_wrap.c:12040: error: expected ')' before 'arg2'
rlibmemcached_wrap.c: In function '_wrap_memcached_set_sasl_auth_data':
rlibmemcached_wrap.c:12081: warning: implicit declaration of function 'memcached_set_sasl_auth_data'
rlibmemcached_wrap.c: In function '_wrap_memcached_destroy_sasl_auth_data':
rlibmemcached_wrap.c:12109: warning: implicit declaration of function 'memcached_destroy_sasl_auth_data'
rlibmemcached_wrap.c: In function '_wrap_memcached_get_sasl_callbacks':
rlibmemcached_wrap.c:12122: error: 'sasl_callback_t' undeclared (first use in this function)
rlibmemcached_wrap.c:12122: error: 'result' undeclared (first use in this function)
rlibmemcached_wrap.c:12133: error: expected expression before ')' token
rlibmemcached_wrap.c: In function '_wrap_memcached_sasl_authenticate_connection':
rlibmemcached_wrap.c:12157: warning: implicit declaration of function 'memcached_sasl_authenticate_connection'
rlibmemcached_wrap.c: In function 'Init_rlibmemcached':
rlibmemcached_wrap.c:13285: warning: implicit declaration of function 'sasl_client_init'
rlibmemcached_wrap.c:13285: error: 'SASL_OK' undeclared (first use in this function)
make: *** [rlibmemcached_wrap.o] Error 1

Gem files will remain installed in /usr/lib/ruby/gems/1.8/gems/memcached-0.19.2 for inspection.
Results logged to /usr/lib/ruby/gems/1.8/gems/memcached-0.19.2/ext/gem_make.out
解决办法:
sudo apt-get install libsasl2-dev
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值