HansChrisLuk Geschrieben 9. Dezember 2006 Geschrieben 9. Dezember 2006 Hallo, also ich versuche eine Verbindung zu einem Server aufzubauen, allerdings klappt das überhaupt nicht. Das ist mein Code: #include #include void main () { SOCKET sock; int conn; struct sockaddr_in server; unsigned long addr; struct hostent *hp; sock = socket( AF_INET, SOCK_STREAM, 0 ); if (sock < 0) { printf("Fehler beim Erzeugen des Sockets"); } memset( &server, 0, sizeof (server)); addr = inet_addr("216.239.59.99"); memcpy( (char *)&server.sin_addr, &addr, sizeof(addr)); server.sin_family=AF_INET; server.sin_port=htons(80); conn=connect(sock,(struct sockaddr*)&server, sizeof(server)); } und wenn ich es kompiliere bekomme ich die Fehlermeldung: get_string3.obj : error LNK2019: unresolved external symbol _htons@4 referenced in function _main Was mache ich falsch? Muss ich noch die Biblio wsock32.lib einbinden? Ich arbeite unter Win und mit dem Editor (ConText) Gruß Chris P.S.: Ich hab jetzt mal in Visual Studio ein Projekt erstellt und die wsock32.lib durch den Linker hinzugefügt, nun bekomm ich aber immer die Fehlermeldung: LINK : fatal error LNK1181: cannot open input file 'C:\Programme\Microsoft.obj' Zitieren
Klotzkopp Geschrieben 11. Dezember 2006 Geschrieben 11. Dezember 2006 und wenn ich es kompiliere bekomme ich die Fehlermeldung: get_string3.obj : error LNK2019: unresolved external symbol _htons@4 referenced in function _mainStreng genommen bekommst du diese Fehlermeldung nicht beim Compilieren, sondern danach, beim Linken. Der Compiler hat seine Arbeit erledigt. Was mache ich falsch? Muss ich noch die Biblio wsock32.lib einbinden?Jedenfalls fehlt die Bilbiothek, in der htons implementiert ist. Ich arbeite unter Win und mit dem Editor (ConText)Mit welchem Compiler du arbeitest, wäre wichtiger gewesen P.S.: Ich hab jetzt mal in Visual Studio ein Projekt erstellt und die wsock32.lib durch den Linker hinzugefügt, nun bekomm ich aber immer die Fehlermeldung:Für MSVC heißt die Bibliothek "Ws2_32.lib". LINK : fatal error LNK1181: cannot open input file 'C:\Programme\Microsoft.obj'Hast du da einen Pfad mit angegeben? Zitieren
HansChrisLuk Geschrieben 11. Dezember 2006 Autor Geschrieben 11. Dezember 2006 Hi, also ich arbeite mit Visual Studio 2005. Was meinst Du mit "Hast du da einen Pfad mit angegeben?" Also ich habe die Datei auch nicht auf meinem PC und ich habe sie auch nicht im Prog mit angeben. Kann man eine Biblio nicht auch per Code einbinden? Wahrscheinlich nicht :confused: ... Ich habe sonst immer im Editor programmiert und dann mittel Visual Prompt die Dateien mit: cl Kuckuck.c kompiliert. Gibt es da nicht noch eine Möglichkeit eine Biblio mit einzubinden: cl Kuckuck.c -incl c:\Biblio.lib oder so? Vielen Dank schon einmal Gruß Chris Zitieren
Klotzkopp Geschrieben 11. Dezember 2006 Geschrieben 11. Dezember 2006 Was meinst Du mit "Hast du da einen Pfad mit angegeben?"Du hast doch geschrieben:Ich hab jetzt mal in Visual Studio ein Projekt erstellt und die wsock32.lib durch den Linker hinzugefügt,Wie genau hast du das gemacht? Also ich habe die Datei auch nicht auf meinem PC und ich habe sie auch nicht im Prog mit angeben.Hast du das Platform SDK installiert? Kann man eine Biblio nicht auch per Code einbinden? Wahrscheinlich nichtDoch, mit #pragma comment. Das ist aber nicht Teil des Standards, nicht jeder Compiler kann das. Gibt es da nicht noch eine Möglichkeit eine Biblio mit einzubinden: cl Kuckuck.c -incl c:\Biblio.libDas sollte mit /link gehen. Aber warum bedienst du deinen Compiler über die Kommandozeile, wenn du eine IDE hast? Zitieren
HansChrisLuk Geschrieben 11. Dezember 2006 Autor Geschrieben 11. Dezember 2006 Du hast doch geschrieben:Wie genau hast du das gemacht? Ach so, beim Projekt habe ich über Properties -> Linker den Pfad zur Biblio angegeben (C:\programme\visual studio\...) Hast du das Platform SDK installiert? Weiß ich leider gar nicht genau. Wie finde ich das heraus? Doch, mit #pragma comment. Das ist aber nicht Teil des Standards, nicht jeder Compiler kann das. Stimmt, das habe ich schon probiert gehabt, ich war mir aber nicht sicher, ob es das richtige dafür ist. Ich werde es damit noch einmal probieren... bzw mit /link Das sollte mit /link gehen. Aber warum bedienst du deinen Compiler über die Kommandozeile, wenn du eine IDE hast? Ich arbeite lieber mit dem Editor, der ist schön klein und wirkt irgendwie "direkter", als diese riesige IDE, mit all den Projekten, Einstellungen und Fehlermeldungen . Bisher hatte auch immer der Editor gereicht, aber ich glaube, die Zeiten sind langsam vorbei... Zitieren
Klotzkopp Geschrieben 11. Dezember 2006 Geschrieben 11. Dezember 2006 Ach so, beim Projekt habe ich über Properties -> Linker den Pfad zur Biblio angegeben (C:\programme\visual studio\...)Das meinte ich mit "hast du einen Pfad angegeben". Du hast einen Pfad angegeben, und da steht ein Leerzeichen drin. Normalerweise gibt man da keine Pfade an, sondern regelt das über die Library-Verzeichnisse. Weiß ich leider gar nicht genau. Wie finde ich das heraus?Systemsteuerung? Ich arbeite lieber mit dem Editor, der ist schön klein und wirkt irgendwie "direkter", als diese riesige IDE, mit all den Projekten, Einstellungen und Fehlermeldungen .Dann ist das Problem hausgemacht. Du bekommst jetzt Probleme mit genau den Aufgaben, die dir die IDE abnimmt. Zitieren
HansChrisLuk Geschrieben 11. Dezember 2006 Autor Geschrieben 11. Dezember 2006 Hi, und wie mache ich das mit den Library-Verzeichnissen? Soll ich das ganze Verzeichniss einbinden?! Wenn ich dem Linker also einen Pfad ohne Leerzeichen vorgebe, dann sollte es funktionieren? Vielen Dank für die viele Hilfe. Ich probiere es heute Abend aus und sag bescheid! Gruß & Dank Chris Zitieren
HansChrisLuk Geschrieben 11. Dezember 2006 Autor Geschrieben 11. Dezember 2006 Hallo, also ich habe es geschafft! ich habe die .lib einfach in c:\ kopiert und jetzt funktioniert es! ach so, sdk hab ich drauf! vielen, vielen dank! chris Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.