2014-07-20 58 views
-2

我是網絡編程的新手,我正在嘗試一個教程。這是我試過的程序。windows sdk和wsa啓動

#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:\CodeBlocks\MinGW\bin\Network\main.cpp|14|undefined reference to `[email protected]'| 

再次,這是我第一次做網絡programming和我唐諾爲什麼這個錯誤是來了。我想我應該安裝Windows SDK。有人告訴我,如果我應該和我應該安裝什麼。

+0

你用什麼來編譯?按照目前的寫法,您的問題沒有提供足夠的元素來理解您的問題。 –

+2

將Ws2_32.lib添加到鏈接器設置。 –

+0

@SergeBallesta g ++! C :: B的默認編譯器 –

回答

0

由於Alex Farber提到你必須鏈接到Ws2_32.lib才能讓鏈接器找到WSAStartup的實際代碼。他知道(來自winsock2頭文件)它是如何聲明的,但不是他的實際實現,它可以在相關的庫文件中找到,它可以是靜態(.lib)或動態(Windows上的dll)。

在問這種問題之前,您應該自己嘗試使用Google搜索錯誤,您會發現有大量的人有同樣的問題。

一個更一般的建議:當你遇到這樣的問題,如果第一次研究與'確切'相同的錯誤信息不起作用(高度懷疑,但它可能發生)嘗試研究更普遍的錯誤'undefined參考',你很容易滿足你對知識的渴望(:D)。

如果您想快速瀏覽彙編/鏈接,請參閱How does the compilation/linking process work?。希望這回答了它,併爲您提供有關如何尋找幫助一些提示^^

有一個愉快的一天,快樂編碼:)