2010-11-20 48 views
1

道歉爲必須創建一個新的線程爲此,但我開始在winsock中,並已遵循通過madwizardbeej指南,以及msdn上的一些信息。我堅持,我似乎無法編譯以下(yeahp ...大start..i知道...:P)開始在winsock不能得到第一個編譯

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

using namespace std; 

int main(void){ 
    const int iReqWinsockVer = 2; // 
    WSADATA wsadata; 

    if (WSAStartup(MAKEWORD(iReqWinsockVer,0), &wsadata) == 0){ 
     if (LOBYTE(wsadata.wVersion) >= iReqWinsockVer){ 


     } 
     else{ 
      cout<<" Required version Not available..." << endl; 
     } 
     if (WSACleanup()!=0){ 
      cout<<"Clean up failed!..." << endl; 
     } 
    } 
    else{ 
     cout<<"Startup faled!..." << endl; 
    } 

    return 0; 

} 

我收到以下錯誤

C:\DOCUME~1\rs\LOCALS~1\Temp/ccygafwl.o:sock.cpp:(.text+0x14a): undefined reference to `[email protected]' 
C:\DOCUME~1\rs\LOCALS~1\Temp/ccygafwl.o:sock.cpp:(.text+0x186): undefined reference to `[email protected]' 
collect2: ld returned 1 exit status 

我使用GCC並通過命令行編譯有什麼我必須鏈接的?

- 謝謝。

+0

我想'-lws2 '工作。儘管我的記憶力延長了。 – sje397 2010-11-20 09:30:11

+0

你的意思是你通過Cygwin使用Mingw或者GCC?爲什麼不直接使用免費的Visual Studio for Windows特定代碼快捷版? – 2010-11-20 09:36:30

+0

Mingw,我現在想避免使用視覺工作室,真的不知道如何使用它,並且我不認爲像這樣簡單的事情真的需要這樣的IDE :)。仍在學習。 – silent 2010-11-20 09:42:08

回答

1

您必須使用-lws2_32,如果我沒有記錯的話)將您的項目與winsock庫鏈接。

+0

非常感謝你 – silent 2010-11-20 09:45:57

0

嗨,我認爲你(在vissual工作室WS2_32.LIB)與贏插座的lib didnt鏈接

+0

你好,我沒有使用visual studio,只是GCC和記事本++。我如何手動執行此操作? – silent 2010-11-20 09:39:28

+0

我認爲你需要這個-lws2_32 – 2010-11-20 09:42:32

+0

Ups icecrime是第一個) – 2010-11-20 09:42:48

1

的gcc -o socket.exe socket.c中-lws2_32

+0

非常感謝你 – silent 2010-11-20 09:46:15

相關問題