Hallo Freunde des Longdrinks,
ich war gerade dabei etwas zu kompilieren, da liefen mir folgende Fehler über den Weg:
Beim kompilieren von ServerSocket.cpp, das ServerSocket.h einbezieht und das wiederum ServerSocketClient.h einbezieht (ServerSocket.cpp <- ServerSocket.h <- ServerSocketClient.h), tritt der Fehler im ServerSocket Headerfile auf.
Aus den Fehlern wird klar, dass jeweils der vector mit der Klasse ServerSocketClient nicht deklariert werden kann, da er nicht existent ist (siehe Quellcode). Das kommt mir ein bisschen komisch vor, weil ServerSocket.h eigentlich das Headerfile von ServerSocketClient einbindet.
Warum findet er den ServerSocketClient Typ nicht?
Alles anzeigen
Vermutlich ist es etwas ganz simples, aber im Moment kann ich den Fehler im System einfach nicht erkennen.
Es wäre super toll, wenn mir dafür jemand eine Lösung präsentieren könnte, danke.
ich war gerade dabei etwas zu kompilieren, da liefen mir folgende Fehler über den Weg:
Quellcode
- g++ -O0 -g3 -Wall -c -fmessage-length=0 -pthread -MMD -MP -MF"src/classes/ServerSocket.d" -MT"src/classes/ServerSocket.d" -o"src/classes/ServerSocket.o" "../src/classes/ServerSocket.cpp"
- In file included from ../src/classes/ServerSocket.cpp:8:
- ../src/classes/ServerSocket.h:24: error: ISO C++ forbids declaration of ‘vector’ with no type
- ../src/classes/ServerSocket.h:24: error: expected ‘;’ before ‘<’ token
- ../src/classes/ServerSocket.h:33: error: ISO C++ forbids declaration of ‘vector’ with no type
- ../src/classes/ServerSocket.h:33: error: expected ‘;’ before ‘<’ token
Beim kompilieren von ServerSocket.cpp, das ServerSocket.h einbezieht und das wiederum ServerSocketClient.h einbezieht (ServerSocket.cpp <- ServerSocket.h <- ServerSocketClient.h), tritt der Fehler im ServerSocket Headerfile auf.
Aus den Fehlern wird klar, dass jeweils der vector mit der Klasse ServerSocketClient nicht deklariert werden kann, da er nicht existent ist (siehe Quellcode). Das kommt mir ein bisschen komisch vor, weil ServerSocket.h eigentlich das Headerfile von ServerSocketClient einbindet.
Warum findet er den ServerSocketClient Typ nicht?
Quellcode
- /*
- * ServerSocket.h
- *
- * Created on: Jan 14, 2012
- * Author: imp
- */
- #include <stdlib.h>
- #include <pthread.h>
- #include <netinet/in.h>
- #include <strings.h>
- #include "ServerSocketClient.h"
- #ifndef SERVERSOCKET_H_
- #define SERVERSOCKET_H_
- using namespace std;
- struct ServerSocketLink {
- int* link;
- int* port;
- pthread_t* you;
- sockaddr_in* address;
- vector<ServerSocketClient*>* clients;
- pthread_mutex_t* lock;
- };
- class ServerSocket {
- private:
- int socketLink, socketPort, socketBacklog;
- sockaddr_in socketAddress;
- pthread_t socketThread;
- vector<ServerSocketClient*> socketClients;
- pthread_mutex_t socketAcceptLock;
- public:
- ServerSocket(int) throw (int);
- ~ServerSocket();
- void setBacklog(int);
- void listen();
- };
- #endif /* SERVERSOCKET_H_ */
- /*
- * ServerSocketClient.h
- *
- * Created on: Jan 14, 2012
- * Author: imp
- */
- #include <pthread.h>
- #include <netinet/in.h>
- #ifndef SERVERSOCKETCLIENT_H_
- #define SERVERSOCKETCLIENT_H_
- struct ServerSocketClientLink {
- int* link;
- int* server;
- int* port;
- sockaddr_in* address;
- pthread_t* you;
- };
- class ServerSocketClient {
- private:
- int clientLink;
- int* serverLink;
- int* serverPort;
- sockaddr_in* serverAddress;
- pthread_t clientThread;
- public:
- ServerSocketClient(int, int*, int*, sockaddr_in*);
- void listen();
- };
- #endif /* SERVERSOCKETCLIENT_H_ */
Vermutlich ist es etwas ganz simples, aber im Moment kann ich den Fehler im System einfach nicht erkennen.
Es wäre super toll, wenn mir dafür jemand eine Lösung präsentieren könnte, danke.
IMP, out.