Hi,
ich wollte gerade aus einem Buch einen minimalen Server für Linux
nachprogrammieren (in C). beim compilieren kommt jetzt aber folgende
Meldung:
1
gcc -Wall -Werror -pedantic -c server.c
2
cc1: warnings being treated as errors
3
server.c: In function ‘main’:
4
server.c:114:47: error: passing argument 2 of ‘bind’ from incompatible pointer type
5
/usr/include/sys/socket.h:115:12: note: expected ‘const struct sockaddr *’ but argument is of type ‘struct sockaddr_in *’
6
server.c:130:5: error: passing argument 2 of ‘accept’ from incompatible pointer type
7
/usr/include/sys/socket.h:214:12: note: expected ‘struct sockaddr * __restrict__’ but argument is of type ‘struct sockaddr_in *’
8
server.c:130:5: error: pointer targets in passing argument 3 of ‘accept’ differ in signedness
9
/usr/include/sys/socket.h:214:12: note: expected ‘socklen_t * __restrict__’ but argument is of type ‘int *’
10
make: *** [server.o] Fehler 1
Bin jetzt etwas ratlos weil ich davon ausgegangen bin das das Programm
aus dem Buch funktionieren sollte.
das sollte die betroffene Stellen im Quellcode sein:
Hi,
das mit dem typecast war auch meine erste Idee, veränderte aber nix an
der Fehlermeldung. Ich hab in der Zwischenzeit mal die Option -Werror
aus dem Makefile entfernt. Damit kann ich das Programm zwar compilieren
aber beim ausführen scheitert das Programm genau an diesen Stellen.
mr08b002 schrieb:> das mit dem typecast war auch meine erste Idee, veränderte aber nix an> der Fehlermeldung.
Wie soll das gehen?
Daß "die Fehlermeldung" drei unterschiedliche Fehler an drei (naja,
genaugenommen zwei) unterschiedlichen Stellen im Code sind, hast Du aber
schon gesehen?
Mit root-Rechten läuft er.
Bzgl. der Fehler nehm ich mal an, dass typecast mit der Compileroption
-Wall eine Warnung auslösen, die dann von -Werror als Fehler
interpretiert wird. Ohne die Option -Werror funktioniert es jedenfalls.
Danke für eure Hilfe!