ENGLISH VERSION |
|
Links | | | Forum | | | Kommentare | | | News melden |
Chat | | | Umfragen | | | Newsticker | | | Archiv |
amiga-news.de Forum > Programmierung > g++ und CStrings | [ - Suche - Neue Beiträge - Registrieren - Login - ] |
-1- | [ - Beitrag schreiben - ] |
16.06.2003, 15:38 Uhr Kaesebroetchen Posts: 643 Nutzer |
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 ? [ - Antworten - Zitieren - Direktlink - ] |
17.06.2003, 10:45 Uhr Solar Posts: 3680 Nutzer |
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: [ - Antworten - Zitieren - Direktlink - ] |
17.06.2003, 18:10 Uhr Kronos Posts: 1168 Nutzer |
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 [ - Antworten - Zitieren - Direktlink - ] |
18.06.2003, 05:45 Uhr Solar Posts: 3680 Nutzer |
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. ;-) [ - Antworten - Zitieren - Direktlink - ] |
18.06.2003, 12:52 Uhr Kaesebroetchen Posts: 643 Nutzer |
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: ) [ - Antworten - Zitieren - Direktlink - ] |
18.06.2003, 13:22 Uhr gni Posts: 1106 Nutzer |
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!) [ - Antworten - Zitieren - Direktlink - ] |
18.06.2003, 14:03 Uhr Solar Posts: 3680 Nutzer |
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. [ - Antworten - Zitieren - Direktlink - ] |
19.06.2003, 00:32 Uhr Holger Posts: 8116 Nutzer |
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. [ - Antworten - Zitieren - Direktlink - ] |
-1- | [ - Beitrag schreiben - ] |
amiga-news.de Forum > Programmierung > g++ und CStrings | [ - Suche - Neue Beiträge - Registrieren - Login - ] |
Impressum |
Datenschutzerklärung |
Netiquette |
Werbung |
Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten. |