我正在尝试在 Ubuntu 12 操作系统上编译文件csapp.c和csapp.h 。我想我缺少一些头文件或一些选项,但我不知道是哪一个。或者也许我没有最新的 gcc。这是我的Makefile:
SRC = tiny.c
LIB = csapp.c
INC = csapp.h
ALL = $(SRC) $(LIB) $(INC)
webServer-gcc : $(ALL)
gcc -std=c99 -O2 -lpthread -lrt -o server $(ALL)
这是我从终端输出的错误:
csapp.c: In function ‘Kill’:
csapp.c:81:5: warning: implicit declaration of function ‘kill’ [-Wimplicit-function- declaration]
csapp.c: In function ‘Signal’:
csapp.c:124:22: error: storage size of ‘action’ isn’t known
csapp.c:124:30: error: storage size of ‘old_action’ isn’t known
csapp.c:127:5: warning: implicit declaration of function ‘sigemptyset’ [-Wimplicit- function-declaration]
csapp.c:128:23: error: ‘SA_RESTART’ undeclared (first use in this function)
csapp.c:128:23: note: each undeclared identifier is reported only once for each function it appears in
csapp.c:130:5: warning: implicit declaration of function ‘sigaction’ [-Wimplicit-function-declaration]
csapp.c: In function ‘Sigprocmask’:
csapp.c:138:5: warning: implicit declaration of function ‘sigprocmask’ [-Wimplicit-function-declaration]
csapp.c: In function ‘Sigfillset’:
csapp.c:152:5: warning: implicit declaration of function ‘sigfillset’ [-Wimplicit-function-declaration]
csapp.c: In function ‘Sigaddset’:
csapp.c:159:5: warning: implicit declaration of function ‘sigaddset’ [-Wimplicit-function-declaration]
csapp.c: In function ‘Sigdelset’:
csapp.c:166:5: warning: implicit declaration of function ‘sigdelset’ [-Wimplicit-function-declaration]
csapp.c: In function ‘Sigismember’:
csapp.c:174:5: warning: implicit declaration of function ‘sigismember’ [-Wimplicit-function-declaration]
csapp.c: In function ‘Fdopen’:
csapp.c:326:5: warning: implicit declaration of function ‘fdopen’ [-Wimplicit-function-declaration]
csapp.c:326:13: warning: assignment makes pointer from integer without a cast [enabled by default]
csapp.c: In function ‘open_clientfd’:
csapp.c:741:5: warning: implicit declaration of function ‘bzero’ [-Wimplicit-function-declaration]
csapp.c:743:5: warning: implicit declaration of function ‘bcopy’ [-Wimplicit-function-declaration]
make: *** [webServer-gcc] Error 1
这是我的主要功能中最后剩下的错误:
tiny.c:23:24: error: storage size of ‘clientaddr’ isn’t known
这是我的代码的第 23 行:
struct socketaddr_in clientaddr;