未定义的引用select@20在C中

未定义的引用select@20在C中,c,input,linker-errors,C,Input,Linker Errors,我试图给用户一段时间来进入移动,我发现了一个教程,其中有fflush()和select(),但是,有一个错误: 未定义的引用select@20 我的代码的精简版本: #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <windows.h> #include <time.h> #include <sys/time.h> #include &l

我试图给用户一段时间来进入移动,我发现了一个教程,其中有
fflush()
select()
,但是,有一个错误:

未定义的引用select@20

我的代码的精简版本:

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <windows.h>
#include <time.h>
#include <sys/time.h>
#include <sys/types.h>

int main() {
    struct timeval tmo;
    fd_set readfds;

    for (int x = 0;;x++) {
        do {
        printf("\nEnter a move: ");
        fflush(stdout);

        /* wait only 5 seconds for user input */
        FD_ZERO(&readfds);
        FD_SET(0, &readfds);
        tmo.tv_sec = 5;
        tmo.tv_usec = 0;

        switch (select(1, &readfds, NULL, NULL, &tmo)) {
        case -1:
            err(1, "select");
            break;
        case 0:
            printf("User didn't give an input.");
            return (1);
        }

        scanf(" %c", &userInput);
        translateUserInput(userInput, &dx, &dy);
        }
        while (!isDirectionOk(field, snake, dx, dy));
    }
}
#包括
#包括
#包括
#包括
#包括
#包括
#包括
int main(){
结构timeval-tmo;
fd_设置读取FDS;
对于(int x=0;x++){
做{
printf(“\n输入移动:”);
fflush(stdout);
/*只需等待5秒钟,用户即可输入*/
FD_零(&readfds);
FD_集(0,&readfds);
tmo.tv_sec=5;
tmo.tv_usec=0;
开关(选择(1,&readfds,NULL,NULL,&tmo)){
案例1:
错误(1,“选择”);
打破
案例0:
printf(“用户没有提供输入。”);
申报表(1);
}
scanf(“%c”、&userInput);
translateUserInput(用户输入、dx和dy);
}
而(!isDirectionOk(field,snake,dx,dy));
}
}

顺便说一下,我在Windows上。

您需要链接
Ws2_32.lib

如果您使用的是MinGW,则该库称为
libwsock32.a

对于使用Code::Blocks的用户,请转到Project->Build Options->Linker Settings->Add->libwsock32.a


其中一个
#include
#include
应生成错误。您使用的是哪种编译器/版本?它是通过代码块预安装的编译器。我查看了安装文件夹,找到了适用于Windows GCC 5系列MinGW 32位版本的TDM-GCC编译器套件。是吗?这是一个链接器问题,您可能需要链接到
Ws2_32.lib
。已解决。(对于任何使用MinGW的人,Ws2_32.lib被称为libwsock32.a,这里特别针对代码块用户,您需要转到Project->Build Options->add->libwsock32.a)所以请写一个答案并标记它。这就是SO的工作方式,也适用于自我回答的问题。