windows sdk and wsa startup

windows sdk and wsa startup

本文关键字:startup wsa and sdk windows      更新时间:2023-10-16

我是网络编程新手,我正在尝试一个教程。这是我试过的程序。

#include<winsock2.h>
#include<ws2tcpip.h>
#include<iphlpapi.h>
#include <iostream>

using namespace std;
int main()
{
    WSADATA wsaData;
    int iResult;
    //initialize  winsock
    iResult = WSAStartup(MAKEWORD(2,2), &wsaData);
    if(iResult!=0)
    {
        cout << "Startup Failed:"<<iResult<< endl;
    }
    return 1;
}

我得到的错误是:

D:CodeBlocksMinGWbinNetworkmain.cpp|14|undefined reference to `WSAStartup@8'|

再次,这是我第一次做网络programming,我不知道为什么会出现这个错误。我想我应该安装windows sdk。有人告诉我是否应该安装,我应该安装什么。

正如Alex Farber提到的,你必须链接到Ws2_32。为了让链接器找到WSAStartup的实际代码。他知道(从winsock2头文件)它是如何声明的,但不知道他的实际实现,这是在相关的库文件中找到的,它可以是静态的(.lib)或动态的(windows上的dll)。

在问这种问题之前,你应该自己在谷歌上搜索一下这个错误,你会发现很多人都有同样的问题。

一个更一般的建议:当你遇到这类问题时,如果第一次研究"完全"相同的错误信息不起作用(高度怀疑,但它可能发生),尝试研究一个更一般的错误"未定义的参考",你会很容易满足你对知识的渴望(:D)。

如果您想快速了解编译/链接,请参阅编译/链接过程如何工作?希望这篇文章能回答你的问题,并给你一些如何寻求帮助的提示^^

祝你有一个美好的一天和快乐的编码:)