[iyunv@i-0boypofz 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 identifier is reported only once
# 解决办法,检查下libevent安装路径,如果自定义安装了,拷贝下路径库。 ln -s /usr/lib/libevent* /usr/lib64/
[iyunv@i-0boypofz magent]# 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 identifier is reported only once magent.c:729: error: for each function it appears in.) make: *** [magent.o] 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: *** [magent] Error 1
解决方法:
vi Makefile CFLAGS = -Wall -g -O2 -I/usr/local/include $(M64) 改为: CFLAGS = -lrt -Wall -g -O2 -I/usr/local/include $(M64)
[iyunv@i-0boypofz magent5]# 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: *** [magent] Error 1
解决办法: vi Makefile
LIBS = -levent –lm
|