Seite 1 von 1

Internet Zugriff

Verfasst: 08.07.2019, 11:09
von znieh99
Hallo Forum,
ich möchte mittels C/C++ auf das Internet zugreifen. Dabei ergib sich schon beim Start von WSAStartup die nachstehenden Warnungen und Fehlermeldungen. Kann mir da wer helfen?

Fehlermeldungen:
...
g++ -c -g -MMD -MP -MF "build/Debug/Cygwin-Windows/main.o.d" -o build/Debug/Cygwin-Windows/main.o main.cpp
In file included from /usr/include/w32api/winsock2.h:56:0,
from main.cpp:16:
/usr/include/w32api/psdk_inc/_fd_types.h:100:2: warning: #warning "fd_set and associated macros have been defined in sys/types. This can cause runtime problems with W32 sockets" [-Wcpp]
#warning "fd_set and associated macros have been defined in sys/types. \
^~~~~~~
In file included from main.cpp:16:0:
/usr/include/w32api/winsock2.h:995:34: error: conflicting declaration of C function 'int select(int, _types_fd_set*, _types_fd_set*, _types_fd_set*, PTIMEVAL)'
WINSOCK_API_LINKAGE int WSAAPI select(int nfds,fd_set *readfds,fd_set *writefds,fd_set *exceptfds,const PTIMEVAL timeout);
^~~~~~
In file included from /usr/include/sys/types.h:52:0,
from /usr/include/stdio.h:61,
from main.cpp:14:
/usr/include/sys/select.h:62:5: note: previous declaration 'int select(int, _types_fd_set*, _types_fd_set*, _types_fd_set*, timeval*)'
int select __P ((int __n, fd_set *__readfds, fd_set *__writefds,
^~~~~~
make[2]: *** [nbproject/Makefile-Debug.mk:68: build/Debug/Cygwin-Windows/main.o] Error 1
make[2]: Leaving directory '/cygdrive/d/Heinz/Eigene Programme Source/NetBeansProjects/C-Programme/Internet'
make[1]: *** [nbproject/Makefile-Debug.mk:59: .build-conf] Error 2
make[1]: Leaving directory '/cygdrive/d/Heinz/Eigene Programme Source/NetBeansProjects/C-Programme/Internet'
make: *** [nbproject/Makefile-impl.mk:40: .build-impl] Error 2

BUILD FAILED (exit value 2, total time: 2s)

Hier noch der Code:

Code: Alles auswählen

#include <cstdlib>
#include <cstdio.h>
#include <windows.h>
#include <winsock.h>

using namespace std;

int main(int argc, char** argv) {

    WSADATA SWsadata;
    
    if(WSAStartup(MAKEWORD(1,1),&SWsadata) == 0) {
        printf("OK\n");
    } else {
        printf("Fehler\n");
    }
    return 0;

Re: Internet Zugriff

Verfasst: 08.07.2019, 13:21
von znieh99
Ich habe nun den #include von <winsock2.h> an den Anfang der Includes gestellt und damit die vorgenannten Probleme gelöst.

Aber nun bekomme ich die nachstehende Fehlermeldung:

cygdrive/d/Heinz/Eigene Programme Source/NetBeansProjects/C-Programme/Internet/main.cpp:28: undefined reference to `__imp_WSAStartup'
/cygdrive/d/Heinz/Eigene Programme Source/NetBeansProjects/C-Programme/Internet/main.cpp:28:(.text+0x31): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `__imp_WSAStartup'
collect2: error: ld returned 1 exit status

Re: Internet Zugriff

Verfasst: 08.07.2019, 15:53
von znieh99
Uff, auch dieses Problem konnte ich lösen:
In den Programm-Properties (rechte Maustaste) unter Linker bei den Additional Options den Wert -lws2_32 eintragen,
lg heinz