начиная с Winsock не могу получить первый бит для компиляции - PullRequest
1 голос
/ 20 ноября 2010

извиняюсь за необходимость создания нового потока для этого, но я начинаю с winsock и следую инструкциям madwizard и beej , а также некоторой информации о msdn Я застрял и, кажется, не могу скомпилировать следующее (ага ... большой старт .. я знаю ..: P)

#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 `WSAStartup@8'
C:\DOCUME~1\rs\LOCALS~1\Temp/ccygafwl.o:sock.cpp:(.text+0x186): undefined reference to `WSACleanup@0'
collect2: ld returned 1 exit status

Я использую GCC и компилирую через командную строку, есть ли что-то, что я должен связать?.

-Спасибо.

Ответы [ 3 ]

1 голос
/ 20 ноября 2010

gcc -o socket.exe socket.c -lws2_32

1 голос
/ 20 ноября 2010

Вы должны связать свой проект с библиотекой winsock, используя -lws2_32 (, если я правильно помню ).

0 голосов
/ 20 ноября 2010

Привет, я думаю, что вы не связывались с win socket lib (Ws2_32.lib в vissual studio)

...