gcc编译一个网络小程序时链接报错,求解
gcc编译一个网络小程序时链接出错,求解!
编译命令如下:
gcc -o dayserv dayserv.c
提示的错误信息如下:
dayserv.c:(.text+0x15d): undefined reference to `accpet'
collect2: ld returned 1 exit status
这是怎么回事?按提示是链接库没链接上,但是其他socket函数怎么没提示,只提示accept呢?
按网上的方法,我试了在gcc后加-lsocket或-lwsock32也不行,提示如下:
/usr/bin/ld: cannot find -lwsock32
collect2: ld returned 1 exit status
------解决方案--------------------
accept
这么明显的拼写错误……
#include <sys/socket.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <string.h>
#include <stdio.h>
#include <errno.h>
#include <time.h>
#include <stdbool.h>
#define DAYTIME_SERVER_PORT 13
#define MAX_CLIENT 1000
#define MAX_LEN 80
int main(int argc, char **argv)
{
int servFd, ret;
int clientFd;
struct sockaddr_in addr;
servFd = socket(AF_INET, SOCK_STREAM, 0);
if(servFd == -1) {
printf("%s\n", strerror(errno));
return -1;
}
memset(&addr, 0, sizeof(addr));
addr.sin_family = AF_INET;
addr.sin_addr.s_addr = htonl(INADDR_ANY);
addr.sin_port = htons(DAYTIME_SERVER_PORT);
ret = bind(servFd, (struct sockaddr*)&addr, sizeof(addr));
if (ret != 0) {
printf("%s\n", strerror(errno));
return -1;
}
ret = listen(servFd, MAX_CLIENT);
if (ret != 0) {
printf("%s\n", strerror(errno));
return -1;
}
time_t currentTime;
char sendBuf[MAX_LEN];
while (true) {
clientFd = accpet(servFd, (struct sockaddr_in*)NULL, NULL);
if (clientFd > 0) {
currentTime = time(NULL);
snprintf(sendBuf, MAX_LEN, "%s\n", ctime(¤tTime));
write(clientFd, sendBuf, strlen(sendBuf));
close(clientFd);
}
else {
printf("error occuced when client attemp to connect\n");
}
}
return 0;
}
编译命令如下:
gcc -o dayserv dayserv.c
提示的错误信息如下:
dayserv.c:(.text+0x15d): undefined reference to `accpet'
collect2: ld returned 1 exit status
这是怎么回事?按提示是链接库没链接上,但是其他socket函数怎么没提示,只提示accept呢?
按网上的方法,我试了在gcc后加-lsocket或-lwsock32也不行,提示如下:
/usr/bin/ld: cannot find -lwsock32
collect2: ld returned 1 exit status
------解决方案--------------------
accept
这么明显的拼写错误……