5290589 发表于 2018-12-25 12:24:01

memcached+magent组成高可用

# make
gcc-Wall -g -O2 -I/usr/local/include -m64 -c -o magent.o magent.c
magent.c:71:19:error: event.h: No such file or directory
  magent.c:130: error: field ‘ev’ has incomplete type
  magent.c:161: error: field ‘ev’ has incomplete type
  magent.c: In function ‘server_free’:
magent.c:494:warning: implicit declaration of function ‘event_del’
magent.c:In function ‘pool_server_handler’:
  magent.c:514: error: ‘EV_READ’ undeclared (first use in this function)

magent.c:514:error: (Each undeclared>
  # 解决办法,检查下libevent安装路径,如果自定义安装了,拷贝下路径库。
ln -s /usr/lib/libevent*/usr/lib64/

# make
gcc-Wall -g -O2 -I/usr/local/include -m64 -c -o magent.o magent.c
  magent.c: In function ‘writev_list’:
  magent.c:729: error: ‘SSIZE_MAX’ undeclared (first use in this function)

magent.c:729:error: (Each undeclared>magent.c:729:error: for each function it appears in.)
make:*** Error 1

  解决方法:
vi ./ketama.h
  #在开头加入
#ifndef SSIZE_MAX
#define SSIZE_MAX       32767
#endif

  #libm.a不存在的时候,需要拷贝下面so,如果没有,需要安装glibc glibc-devel
cp/usr/lib64/libm.so /usr/lib64/libm.a

gcc-Wall -g -O2 -I/usr/local/include -m64 -o magent magent.o ketama.o/usr/lib64/libevent.a /usr/lib64/libm.a
/usr/lib64/libevent.a(event.o):In function `gettime':
/root/libevent-2.0.21-stable/event.c:370:undefined reference to `clock_gettime'
/usr/lib64/libevent.a(event.o):In function `detect_monotonic':
/root/libevent-2.0.21-stable/event.c:340:undefined reference to `clock_gettime'
collect2:ld returned 1 exit status
make:*** Error 1

  解决方法:

viMakefile
CFLAGS= -Wall -g -O2 -I/usr/local/include $(M64)
  改为:
CFLAGS= -lrt -Wall -g -O2 -I/usr/local/include $(M64)



# make
gcc-lrt -Wall -g -O2 -I/usr/local/include   -o magent magent.o ketama.o -levent
ketama.o:In function `create_ketama':
/root/magent5/ketama.c:399:undefined reference to `floorf'
collect2:ld returned 1 exit status
make:*** Error 1

  解决办法:
viMakefile

LIBS =-levent –lm


页: [1]
查看完整版本: memcached+magent组成高可用