Unbekannter Fehler beim Kompilieren

homoeolin

homoeolin

QT-Freak
Hallo,

scheint so als haette ich einen unbekannten oder seltenen Kompilierfehler gefunden/erzeugt !
:help:
Auf jeden Fall taucht der auf Foren im Internet net auf !
Beim Kompilieren eines QT-Prograemmchens (Server) gibt der mit folgenden Code aus:

Code:
tobias@hpcd079:~/sstatserver> make
gcc -c -Wall -W -O2 -fno-strength-reduce -I/usr/lib/qt3/include -o httpserv.o httpserv.cpp
httpserv.cpp: In member function `Socket* ServerSocket::accept()':
httpserv.cpp:171: error: invalid conversion from `int*' to `socklen_t*'
make: *** [httpserv.o] Fehler 1
tobias@hpcd079:~/sstatserver>

Kann mir zwar was drunter vorstellen, aber...
Also ich denke der gibt ne Fehlermeldung, weil mein Programm/Code versucht eine int-Funktion in eine Funktion socklen_t umzuwandeln.
Allerdings kommt socklen_t und aehnliches in meinem Quellcode nicht vor. Nur natuerlicherweise Socketcodes mit QT.
Aber die Funktion bzw. diese Variable oder Namen gibts net !
Deshalb schlies ich draus, dass wahrscheinlich socklen_t eine Standartfunktion, eingefuehrt aus Standart-QT-Headern ist !
Hier meine Includes:

Code:
#include <qapplication.h>
#include <qfile.h>
#include <qintdict.h>
#include <qsocketnotifier.h>
#include <qstring.h>
#include <qtextstream.h>

/* Platform-specific includes. */
#include <netinet/in.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <unistd.h>

So und nun der Quellcode, in welchen der Fehler angeblich stecken soll:

Code:
Socket* ServerSocket::accept()
{
  struct sockaddr client_addr; /* Beinhaltet IP-Adresse vom Client */
  int len;
  // Nimm die Verbindung von Client an
  int newfd = ::accept( handle(), &client_addr, &len );
  Socket* newSocket = new Socket();
  newSocket->setFd( newfd );

  return newSocket;
}

Tja. ;(

Wenn ihr noch Fragen habt zum Code stellt die bitte ruhig, bin fuer alle Hilfe dankbar ! ;)

Mein System ist folgendes:
SuSE Linux Professionel 9.0 ohne Updates
gcc-Version 3.3.1 (SuSE Linux)
QT Version 3.2.1 (mit Developer-RPM-Packeten und deren Docu!)

Thanx ! ;)
 
mach doch einfach statt int len; ein socklen_t len;
du verwendest das ja anscheinend nicht weiter, da kann dir der typ egal sein.

auf bald
oenone
 
Habs Problem gelöst.

Hab das Problem selbstständig gelöst ! ;)

Der springende Punkt:
Manchmal sollte man in die man gucken !

man socklen_t

und durchlesen !
Da steht ne Funktionsbeschreibung mit allen Typen, die
als Parameter übergeben werden !

Und dein Tip war richtig ! :P
Das war die Lösung. :]

Thanx ! :dafuer:

(Will an dieser Stelle nur verdeutlichen: man is cool ! ;) )
 
Code:
httpserv.cpp:171: error: invalid conversion from `int*' to `socklen_t*'
das haette dir auch schon den hinweis geben muessen...

naja, fehlermeldungen sind ja nicht da um gelesen zu werden......

auf bald
oenone
 

Ähnliche Themen

Unix Webserver mit HTML Seite erstellen

g++ kompilieren schlägt fehl

Fehler beim Kompilieren von qcserial

cmake kompilieren make fehler

socket() blockiert

Zurück
Oben