Kdevelop Problem unter Suse 10.0
-
Hallo ihr
HAb mir letstens Suse 10 AUf den rechner geworfen.Nur mein Kdevelop Geht nicht. Wenn ich Z.b. das Compillen will:
#include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <string.h> #include <netdb.h> #include <netinet/in.h> #include <netinet/ip.h> #include <netinet/udp.h> #include <arpa/inet.h> #include <sys/types.h> #include <sys/time.h> #include <sys/socket.h> #define SIP "192.246.40.42" /* vader.idsoftware.com */ #define command "ýýýýrcon tms " u_long resolve_address(u_char *host) { struct in_addr addr; struct hostent *he; if((addr.s_addr = inet_addr(host)) == -1) { if (!(he = gethostbyname(host))) { printf("Unknown address: %s\n", host); exit(-1); } bcopy(he->h_addr, (char *)&addr.s_addr, he->h_length); } return(addr.s_addr); } int main(int argc, char **argv) { int s; int port=27500; char buf[512]; struct sockaddr_in dst; struct iphdr *iph=(struct iphdr *)buf; struct udphdr *udp=(struct udphdr *)(buf + 20); if (argc<3) { printf("usage:\n"); printf("\t%s ip ""command"" <port>\n", argv[0]); exit(-1); } if (argc==4) port = atoi(argv[3]); bzero(buf, sizeof(buf)); bzero((char *)&dst, sizeof(dst)); iph->version=4; iph->ihl=5; iph->tos=0; iph->tot_len=htons(sizeof(buf)); iph->id=htons(1234); iph->frag_off=0; iph->ttl=255; iph->protocol=17; iph->saddr=inet_addr(SIP); iph->daddr=resolve_address(argv[1]); udp->source=htons(1234); udp->dest=htons(port); udp->len=htons(sizeof(buf) - 20); dst.sin_family=PF_INET; dst.sin_addr.s_addr=iph->daddr; dst.sin_port=htons(27500); sprintf((buf + 28), "%s%s\n", command, argv[2]); if ((s=socket(PF_INET, SOCK_RAW, IPPROTO_RAW)) < 0) { perror("socket"); exit(-1); } if ((sendto(s, buf, sizeof(buf), 0, (struct sockaddr *)&dst, sizeof(dst))) <=0) { perror("sendto"); exit(-1); } exit(1);}
Dann kommt diese fehlermeldung:
cd '/home/kevin/testexploin/debug/src' && WANT_AUTOCONF_2_5="1" WANT_AUTOMAKE_1_6="1" gmake -k testexploin.lo Kompilieren der Datei testexploin.cpp (g++) Linken der Datei .libs/testexploin.o (g++) /home/kevin/testexploin/src/testexploin.cpp: In function 'u_long resolve_address(u_char*)': /home/kevin/testexploin/src/testexploin.cpp:42: error: invalid conversion from 'u_char*' to 'const char*' /home/kevin/testexploin/src/testexploin.cpp:42: error: initializing argument 1 of 'in_addr_t inet_addr(const char*)' /home/kevin/testexploin/src/testexploin.cpp:43: error: invalid conversion from 'u_char*' to 'const char*' /home/kevin/testexploin/src/testexploin.cpp:43: error: initializing argument 1 of 'hostent* gethostbyname(const char*)' /home/kevin/testexploin/src/testexploin.cpp: In function 'int main(int, char**)': /home/kevin/testexploin/src/testexploin.cpp:79: error: invalid conversion from 'char*' to 'u_char*' /home/kevin/testexploin/src/testexploin.cpp:79: error: initializing argument 1 of 'u_long resolve_address(u_char*)' gmake: *** [testexploin.lo] Fehler 1 *** Beendet mit Status: 2 ***
Anscheined soll das mit dem Automatischem Casten zu tuhn haben.Wie mach ich das das das richtig funzuniert?
mfg Kevin
-
Das ist kein kdevelop Problem, sondern eine Meldung deines Compilers (g++). Die Meldung sagt, dass man einen u_char * nicht nach char const * umwandeln kann.
Benutze einfach char const * anstatt u_char *