![]() |
DEUTSCHE VERSION |
|
![]() |
Links | | | Forums | | | Comments | | | Report news |
![]() |
Chat | | | Polls | | | Newsticker | | | Archive |
![]() |
amiga-news.de Forum > Programmierung > g++ und CStrings | [ - Search - New posts - Register - Login - ] |
-1- | [ - Post reply - ] |
2003-06-16, 15:38 h Kaesebroetchen Posts: 643 User |
Ich hab mal folgende Frage. Ich habe mal ein Konsolen Spiel geschrieben das mit Strings arbeitet. Unter Linux kann ich das ohne Fehler oder Warnungen kompilieren. Wenn ich das mit dem g++ unter AmigaOS versuchen kommen ca.40 -50 Fehlermeldungen. Alle diese Fehler beziehen sich auf die von mir verwendeten String Variablen. Nicht mal ein simples Programm (wie z.B. das hier) #include <iostream.h> #include <string.h> using namespace std; void main() { string hallo = "HALLO WELT"; cout << hallo << endl; } das Strings verwendet lässt sich compilieren. Gibts da einen Trick ? Oder ist der Header string.h nur so aus Spass beim GNU/g++ dabei ? [ - Answer - Quote - Direct link - ] |
2003-06-17, 10:45 h Solar Posts: 3680 User |
Zitat: Wenn Du die Fehler hier zitiert hättest, würde das die Sache deutlich vereinfachen. Aber ich glaube, ich kann Dir auch so helfen: #1: Includes mit ".h" sind C-Includes, keine C++-Includes. Was Du da einbindest, ist der C-Header (der mit strcpy, strcmp etc.)! #2: Es heißt int main(), nicht void main(). #3: "using namespace std;" ist schlechter Stil. #4: "Formaljuristisch" bzw. standardkonform brauchst Du neben <iostream> (definiert cout) auch noch <ostream> (definiert operator<<); allerdings nagelt g++ Dich nicht darauf fest. Probier's mal mit: Zitat: [ - Answer - Quote - Direct link - ] |
2003-06-17, 18:10 h Kronos Posts: 1168 User |
Also normalerweise ist iostream immer C++, egal ob mit ".h" oder nicht. Ich denke eher das er den Compiler falsch aufruft, also "gcc" wo es eigentlich "g++" heissen müsste. MfG Kronos -- Only the good die young all the evil seem to live forever [ - Answer - Quote - Direct link - ] |
2003-06-18, 05:45 h Solar Posts: 3680 User |
Bei iostream.h gibt es keinen namespace std, bei iostream (ohne .h) schon. In jedem Fall ist string.h verkehrt, und höchstwahrscheinlich der Grund für Käsebrötchens Probleme. Einmal nachschauen, ob tatsächlich g++ aufgerufen wird, kann allerdings auch nicht schaden. ;-) [ - Answer - Quote - Direct link - ] |
2003-06-18, 12:52 h Kaesebroetchen Posts: 643 User |
Also erstmal Danke für die Tips. Ich habe immer den g++ Aufgerufen. Ich vermute mal dass das Installer-Script was bei dem Compiler dabei war, das ganze irgenwie nicht richtig installiert hat. Einige Standard-Header wie CSTRING oder FSTREAM kennt der g++ gar nicht. Und eigentlich müsste der Amiga-G++ doch alles was der Linus-G++ fehlerfrei compiliert, genauso fehlerfrei compilieren (So lange es keine Betriebssystemspezifischen Sachen sind) oder ? Vielleicht sollte ich das ganze komplett neu installieren (Wie bei der Windows-Problemlösung FORMAT C: ) [ - Answer - Quote - Direct link - ] |
2003-06-18, 13:22 h gni Posts: 1106 User |
Zitat:g++ braucht man nur strenggenommem nur zum Linken. Das Frontend (gcc) erkennt am Suffix welcher Compiler angeworfen werden muß. Zitat:Welchen GCC hast Du denn installiert? Zum Installerskript kann ich nichts sagen, da ich sowas nicht verwende. Zitat:Es gibt Legacy-headers die eben nicht mehr unbedingt vorhanden sind. Zitat:Was ist "Linus-G++"? Zitat:Vieleicht solltest Du mal genauere Informationen nennen? Welcher GCC, was für Fehlermeldungen (genauer Wortlaut!) [ - Answer - Quote - Direct link - ] |
2003-06-18, 14:03 h Solar Posts: 3680 User |
Zitat: Drücke Dich mal etwas klarer aus. Groß-/Kleinschrift, mit oder ohne .h, und was verstehst Du unter "kennt er nicht" (Fehlermeldung)? Zitat: Welche gcc-Version unter Linux, welche gcc-Version unter AmigaOS? Wenn Du willst, das Dir geholfen wird (haben obige Tipps geholfen?), dann versuche so viele Informationen so präzise wie möglich zu geben. "Geht nicht" ist nicht hilfreich. [ - Answer - Quote - Direct link - ] |
2003-06-19, 00:32 h Holger Posts: 8116 User |
Zitat:Nein, das trifft -wenn überhaupt- nur auf fehlerfreien Source-Code zu, nicht auf erfolgreiches Übersetzen. Und deshalb solltest Du eben alles, was Du an Hinweisen bekommst, auch auswerten. Da wären zum einen die Hinweise, die Dir Solar gegeben hat, zum anderen spuckt ein aktueller gcc unter Linux bei Deinem Programm aus Zitat:Das sagt eigentlich schon alles. Und wenn Du mit Fehlermeldungen bzw. Warnungen nichts anfangen kannst, so poste sie doch wenigstens zusammen mit der Fragestellung. mfg -- Good coders do not comment. What was hard to write should be hard to read too. [ - Answer - Quote - Direct link - ] |
-1- | [ - Post reply - ] |
amiga-news.de Forum > Programmierung > g++ und CStrings | [ - Search - New posts - Register - Login - ] |
![]() |
Masthead |
Privacy policy |
Netiquette |
Advertising |
Contact
Copyright © 1998-2025 by amiga-news.de - all rights reserved. |
![]() |