套接字构建错误

时间:2017-06-26 16:51:36

标签: c winsock

我试图构建一个简单的套接字。

#include<stdio.h>
#include<winsock2.h>
#include<ws2tcpip.h>

int getaddrinfo(const char *node,
                const char *service,
                const struct addrinfo *hints,
                struct addrinfo **res);

int main(int argc, char *argv[])
{
    WSADATA wsa;
    SOCKET a;
    printf("Initializing...");
    if(WSAStartup(MAKEWORD(2,2),&wsa)!=0);
        printf("Failed, Error:%d",WSAGetLastError());
    if((a=socket(AF_INET,SOCK_STREAM,0))==INVALID_SOCKET);
        printf("Failed, Error:",WSAGetLastError());
    return 0;
}

但是得到错误&#34;未定义的引用...&#34;在所有winsock2相关函数(如WSAStartup)上。

2 个答案:

答案 0 :(得分:0)

您需要与ws2_32.lib链接才能获得winsock函数。

如果您正在使用项目文件,请从VS中转到配置属性 - &gt;链接器 - &gt;输入ws2_32.lib并将其添加到其他依赖项。

答案 1 :(得分:0)

未定义的引用错误意味着您尚未将套接字库链接到项目。头文件告诉它函数的外观,但库文件实际上是工作。有关如何执行此操作的详细信息,请参阅this answer