ENGLISH VERSION |
|
Links | | | Forum | | | Kommentare | | | News melden |
Chat | | | Umfragen | | | Newsticker | | | Archiv |
amiga-news.de Forum > Programmierung > GCC Anfängerproblem | [ - Suche - Neue Beiträge - Registrieren - Login - ] |
-1- | [ - Beitrag schreiben - ] |
23.12.2004, 23:26 Uhr Reth Posts: 1858 Nutzer |
Hallo allerseits, habe ein paar Fragen. Nachdem ich mir den GCC von hier: http://www.kefren.be/modules.php?name=Downloads&d_op=viewdownload&cid=1 mit Update installiert habe, habe ich folgendes Beispiel ausprobiert: #include <stream.h> int main() { cout << "Hellon"; } Und dann der Aufruf gcc -o Hello Hello.cpp (oder beide Hellos anders herum, weiss ich immer nie). Der Aufruf erfolgte nicht aus dem GG: Verzeichnis oder eines Unterordners sondern aus Verzeichnis des Quellcodes. Beim Ausgeben der GCC Pfade (mit der entsprechenden Option) waren die Includeverzeichnisse nicht aufgelistet! Das sind die Fehlermeldungen: /t/ccKrIDX9.o(.text+0x1a): undefined reference to 'cout' /t/ccKrIDX9.o(.text+0x20): undefined reference to 'ostream::operator<<(char const *)' Beim Aufruf von: g++ -o Hello Hello.cpp Kommen folgende Fehler: /gg/m68k-amigaos/bin/ld: cannot open -lstdc++: No such file or directory collect2: ld returned 1 exit status Was mach ich falsch? Die Installation lief problemlos. In der User-StartUp stehen alle Assigns und die Path-Anweisung. Seltsamerweise wird letztere wohl nicht ausgeführt, da der Pfad GG:bin nicht mit in einer geöffneten Shell enthalten ist. Kopiere ich die Path-Anweisung in die Shell und führe sie dann aus, funktioniert das (aber immer noch nicht das Compilieren)! Muss die PATH-Anweisung irgendwie exportiert werden, damit sie auch in allen Shells zur Verfügung steht? In der Anleitung zum GCC konnte ich (noch) nichts finden. Aber muss man noch die jenseitsmäßigen Settings usw. vornehmen, wie man sie auch eigentlich von Linux-/Unixprogrammen gewohnt ist, damit das Ganze funktioniert? Bin eigentlich davon ausgegangen,dass mit dem Installer alles notwendige eingerichet ist, um compilieren zu können. Das o.a. Beispiel ist m.W. sogar aus der Doku des GCC bzw. aus nem GCC-Beispiel aus dem WEB, nur leicht abgeändert (dort stand #include "iostream.h", was aber auch nicht ging). Danke schon mal für jede Hilfe! Ciao [ - Antworten - Zitieren - Direktlink - ] |
24.12.2004, 00:04 Uhr Kaesebroetchen Posts: 643 Nutzer |
#include <stream.h> int main() { cout << "Hellon"; } Und das compiliert ? Nimm mal statt dessen: #include <iostream> int main() { std::cout << "Hallo" << std::endl; return 0; } wenn das dann mit g++ -o Hello Hello.cpp Fehler meldet, dann ist deine Installation fehlerhaft. Der Fehler /gg/m68k-amigaos/bin/ld: cannot open -lstdc++: No such file or directory deutet darauf hin, das entweder dein gg: Assign nicht auf die richtige stelle zeigt, oder die Datei libstdc++.a nicht vorhanden ist. Gib mal in der Shell folgendes ein: gg: <enter> cd lib <enter> dir <enter> dort solltest du neben der libstdc++.a auch noch die libamiga.a und noch einige andere finden. falls nicht, dann solltest du die assigns in der Startup-Sequence entsprechend überarbeiten. P.S. Die devkits Installation die bei der GoldEd Demo von Dietmar Eilert dabei ist, funktioniert bei mir tadellos. [ - Antworten - Zitieren - Direktlink - ] |
24.12.2004, 00:20 Uhr whose Posts: 2156 Nutzer |
Hallo Reth, ich habs jetzt gerade auch nochmal testen können, bei meinem GCC tuts nach ner kleinen Korrektur (die von Kaesebroetchen) einwandfrei. Also scheint Deine Installation nicht ganz in Ordnung zu sein. In der Version 1.1 des GCC-Installers wurden ja auch solche "Kleinigkeiten" wie crt.o "vergessen" (ohne die compiliert der GCC erst gar nicht). Wäre also gar nicht so unmöglich, das stdc++... fehlt. Am besten wäre es, glaube ich, wenn Du Dir eine komplette GG-Installation von hier saugst und diese verwendest. Ganz nebenbei kannst Du dann auch den GCC 3.4 einsetzen, wenn Du magst Falls dabei wieder Probleme auftauchen sollten, kannst mich ja kontakten. Den hab ich hier installiert gekriegt, dann sollte das bei Dir auch hinhauen Grüße [ Dieser Beitrag wurde von whose am 24.12.2004 editiert. ] [ - Antworten - Zitieren - Direktlink - ] |
24.12.2004, 08:56 Uhr gni Posts: 1106 Nutzer |
Zitat:Hat jemand Interesse an GCC 3.4.3 (C und C++ only) für m68k und ppc (powerup)? ;-) [ - Antworten - Zitieren - Direktlink - ] |
24.12.2004, 10:03 Uhr whose Posts: 2156 Nutzer |
Zitat: Seit ich den 3.4 endlich einwandfrei am Laufen hab... immer her damit! Auf PUP kann ich zwar verzichten, aber wenns doch schon dabei ist, ist das auch kein Hindernis Übrigens: Es war das "ANSI C" Problem... nu compilierts endlich. Die Library erzeuge ich heut abend, wenn ich bissi Ruhe hab und laß sie Dir dann zukommen Grüße [ - Antworten - Zitieren - Direktlink - ] |
24.12.2004, 10:56 Uhr gni Posts: 1106 Nutzer |
Zitat:Ich weiß nur nicht wohin mit den Archiven. GeekGadgets gibt es nicht mehr und AmiNet geht auch nicht :-/ Zitat:Die Compiler für m68k und ppc(pup) [Host ist bei beiden natürlich AmigaOS/68k!] sind separate Archive ;-) Der WOS-GCC ist leider auf 2.95.x beschränkt und so wirds vermutlich auch bleiben :-/ [ - Antworten - Zitieren - Direktlink - ] |
24.12.2004, 12:28 Uhr Reth Posts: 1858 Nutzer |
Hallo Käsebrötchen, vielen Dank für Deine Hilfe (auch an die anderen). Zitat: Werd ich probieren. Was bedeutet in diesem Zusammenhang denn die Syntax std::cout? Ist das ne statische Methode? Kenne die Syntax nur bei Methodendefinitionen in den Codeteilen von C++ Klassen bzw. beim Aufruf überladener/überschriebener Methoden. Zitat: Sind alle vorhanden. Das Einzige, was nicht aus der User-StartUp bis mit in die Shell kommt und was nach dem manuellen Setzen in der Shell, dem anschließenden Schließen der Shell und neu öffnen nicht überlebt ist die PAth-Anweisung. Wie bekommt man die denn gesetzt, so dass sie immer für alle Shells und das ganze System gilt? Ciao René [ - Antworten - Zitieren - Direktlink - ] |
24.12.2004, 12:47 Uhr Kaesebroetchen Posts: 643 Nutzer |
@Reth Ich bin nur Hobby Programmierer, aber soweit ich weiß bedeutet std:: , das der Befehl dahinter im namespace std zu finden ist. Bei kleinen Konsolenprogrammen ginge auch #include <iostream> using namespace std; int main() { cout << "Hallo" << endl; return 0; } Bei der Schreibweise, habe ich aber bei unterschiedlichen Compilern schon Probleme mit c++ Strings gehabt (waren plötzlich nicht mehr bekannt) [ - Antworten - Zitieren - Direktlink - ] |
24.12.2004, 13:57 Uhr Reth Posts: 1858 Nutzer |
@Käsebrötchen Danke für die Aufklärung. Habs nochmal probiert. Folgende Fehlermeldung bei g++ -o Hello Hello.cpp: /gg/m68k-amigaos/bin/ld: cannot open -lstdc++: No such file or directory collect2: ld returned 1 exit status Die Dateien (libstdc++.a, libamiga.a, etc.) liegen aber in GG:lib! ??? Ciao [ Dieser Beitrag wurde von Reth am 24.12.2004 editiert. ] [ - Antworten - Zitieren - Direktlink - ] |
24.12.2004, 14:16 Uhr Kaesebroetchen Posts: 643 Nutzer |
Vielleicht versuchst du mal in gg: path lib add ? [ - Antworten - Zitieren - Direktlink - ] |
26.12.2004, 13:54 Uhr Reth Posts: 1858 Nutzer |
Na toll! Die libstdc++.a hieß bei mir libstdc++.a.2.10.0. Nach dem Umbenennen hats dann compiliert! Danke schon mal! Melde mich bestimmt bald mit weiteren Fragen, wenn ich anfange meine Sourcen zu portieren! Ciao und schöne Feiertage noch! [ - Antworten - Zitieren - Direktlink - ] |
27.12.2004, 09:35 Uhr gni Posts: 1106 Nutzer |
Zitat:Das ist auch korrekt. Bei 2.95.x ist libstdc++.a ein _Link_ auf diese Datei! Zitat:Warum existiert der Link bei Dir nicht? [ - Antworten - Zitieren - Direktlink - ] |
27.12.2004, 11:19 Uhr Reth Posts: 1858 Nutzer |
Zitat: Das kann ich Dir nicht sagen, wusste nicht mal, dass er existieren muss! Hab einfach nur den Installer durchlaufen lassen! Ciao [ - Antworten - Zitieren - Direktlink - ] |
27.12.2004, 12:46 Uhr gni Posts: 1106 Nutzer |
Zitat:Welches Filesystem benutzt Du? Nachdem Du die Datei schon umbenannt hast, solltest Du sie ins Compilerverzeichnis legen, also dahin wo cc1plus liegt. [ - Antworten - Zitieren - Direktlink - ] |
27.12.2004, 19:29 Uhr Reth Posts: 1858 Nutzer |
HAllo gni!Zitat: Ich benutze SFS. Die Datei liegt momentan noch bei den anderen .a-Dateien im Lib-Verzeichnis. Wieso muss sie umkopiert werden? Gibt es noch mehr, was ich beachten muss (Links, Umbenennen, Kopieren)? Danke nochmals Ciao [ - Antworten - Zitieren - Direktlink - ] |
28.12.2004, 10:13 Uhr gni Posts: 1106 Nutzer |
Zitat:Das erklärt das Fehlen des Links. AFAIK, SFS unterstützt keine Hardlinks. Mit FFS wäre das nicht passiert .-) Zitat:Damit Du mehrere Compilerversionen gleichzeitig benutzen kannst. [ - Antworten - Zitieren - Direktlink - ] |
03.02.2005, 15:48 Uhr PeterII Posts: 26 Nutzer |
Zitat:Also, ich bin riesig interessiert am gcc für PowerUp und erst recht am (auch älteren) gcc für WarpUp. Suche beide Lösungen sogar verzweifelt, um ffmpeg für PPC-Amigas (Classic) zu portieren. Bis jetzt habe ich nur die Distribution, die mit GoldED Studio installiert wird, und die ist ja rein 68k. Und auf http://www.kefren.be ist die PPC-Unterstützung zwar angekündigt, aber eben leider doch nicht im Archiv enthalten, wie ich auf Nachfrage dort erfahren habe (wird sich - so wie ich die Sache sehe, auch vorerst nicht ändern). Kurz und gut: Ich bin für jeden Hinweis, wie ich an gcc (ab 2.9.5.3 aufwärts) mit PPC-Unterstützung (Target reicht, toll wäre natürlich auch als host) rankommen kann. Vielleicht kann jemand hier den entsprechenden Link veröffentlichen (oder mich direkt kontaktieren) ? besten dank, viele Grüße, Peter [ - Antworten - Zitieren - Direktlink - ] |
03.02.2005, 16:57 Uhr gni Posts: 1106 Nutzer |
Zitat:Ist das C oder C++? Zitat:Ach Du bist derjenige, der dort gefragt hat ;-) Das Du dort nichts findest, wundert mich nicht, da zb. das 3.4 Archiv dem GG tar.gz Archiv entspricht. Zitat:Target ist kein Problem, Host ist wegen fehlender libc nicht drin und selbst mit einer libc problematisch. Vermutlich sind die Compiler aber für Dich nicht wirklich nutzbar, da es eben _keine_ libc gibt. Über die Brauchbarkeit der libstdc++.a kann ich auch nichts sagen. Den PowerUp Compilern fehlt zudem "varargs68k" Unterstützung. Der WOS Compiler ist in dem Bereich (wie uch der StormGCC...) auch nicht m68k kompatibel, sollte es aber sein. Zitat:Es gibt keine öffentliche Archive, da ich nicht weis, wohin damit: kein GG, kein AmiNet. [ - Antworten - Zitieren - Direktlink - ] |
03.02.2005, 20:24 Uhr PeterII Posts: 26 Nutzer |
Zitat:Es ist "normales C", aber ich will - wenn ich den Hintergrund Deiner Frage richtig verstehe, den Aufwand einer Übertragung auf vbcc vermeiden. Zitat:Genau, das bin ich... ;-)Zitat:Ach Du bist derjenige, der dort gefragt hat ;-) Das Du dort nichts findest, wundert mich nicht, da zb. das 3.4 Archiv dem GG tar.gz Archiv entspricht. Aber Deine Antwort verstehe ich leider nicht ganz. Auf kefren.be ist ja auch keine 3.4 Version von gcc vorhanden. Wie gesagt, mir würde ein funktionierender gcc 2.9.5.3 reichen, mit dem ich FÜR PowerUp oder noch besser WarpUp compilieren kann. Zitat:Der Compiler selbst muss nicht auf PPC laufen. Er sollte nur anstandslos FÜR PPC compilieren. Aus Deiner Antwort verstehe ich nicht ganz, ob dies nun klappt.Zitat:Target ist kein Problem, Host ist wegen fehlender libc nicht drin und selbst mit einer libc problematisch. Vermutlich sind die Compiler aber für Dich nicht wirklich nutzbar, da es eben _keine_ libc gibt. Über die Brauchbarkeit der libstdc++.a kann ich auch nichts sagen. Den PowerUp Compilern fehlt zudem "varargs68k" Unterstützung. Der WOS Compiler ist in dem Bereich (wie uch der StormGCC...) auch nicht m68k kompatibel, sollte es aber sein. Zitat:Hmmm, und wie könnte ich sonst drankommen? ;-)Zitat:Es gibt keine öffentliche Archive, da ich nicht weis, wohin damit: kein GG, kein AmiNet. [ - Antworten - Zitieren - Direktlink - ] |
04.02.2005, 09:29 Uhr gni Posts: 1106 Nutzer |
Zitat:Dann hast Du zuviel in die Frage hinein interpretiert :-) Ich habe deshalb gefragt, weil "portable" Programme natürlich Standardfunktionen verwenden (bei G++ sind die in libstdc++.a) und ich nicht weis, ob diese Bibliothek bei PPC auch wirklich nutzbar ist. Allerdings wenn Du es schon andeutest, VBCC ist schon einen Versuch wert ;-) Zitat:Für m68k doch und dieses Archiv ist 1:1 identisch mit dem GG Archiv. Zitat:Wie ich schon sagte: Target PPC mit m68k als Host ist kein Problem. PPC als Host _geht_ nicht. Zitat:Compilieren geht, aber da es _keine_ libc gibt, ist es für Dich wohl dennoch nicht nutzbar. Keine libc == kein printf, malloc, etc. Für PUP kann man wohl Paladins libc (modifiziertes libnix) benutzen. Für den WOS Compiler gibt es nichts entsprechendes. Für meine Anforderungen haben die Compiler gereicht, da es ein fast reines Amigaprogramm war ohne libc-Funktionen zu benutzen. Zitat:Ich habe keine Idee. [ Dieser Beitrag wurde von gni am 04.02.2005 editiert. ] [ - Antworten - Zitieren - Direktlink - ] |
23.02.2005, 22:43 Uhr Amaris Posts: 941 Nutzer |
Hallo Ich verwende seit etwa zwei Wochen auf meinem A1 den GCC aus dem OS4-SDK. Jetzt wollte ich auch auf meinem 1200er mal GCC installieren und hab mir von http://www.kefern.be den GCC_Installer-1.3 heruntergeladen. Wenn ich allerdings den Installer starte bekomme ich die Meldung: "Unable to compile script. ERROR: invalid parameter for statement on line 168." Kann denn nicht einfach mal was funktionieren ? Woher kann ich GCC für 68K noch bekommen ? MfG Amaris -- -Amiga 1200 + Blizzard 1230 IV, 120MB HDD, externes CD-ROM -AmigaOne (µA1, G3), 160GB HDD, 256MB RAM [ Dieser Beitrag wurde von Amaris am 23.02.2005 editiert. ] [ - Antworten - Zitieren - Direktlink - ] |
23.02.2005, 22:57 Uhr Reth Posts: 1858 Nutzer |
@Amaris Hm, hatte hier keine Probleme. Soweit ich weiss, besteht die Installation "nur" aus dem Kopieren der Files und dem Einrichten der Assigns. Aber ich habs auch gern, wenn alles funktioniert auf Doppelklick. Was steht denn im Installscript in Zeile 168? [ - Antworten - Zitieren - Direktlink - ] |
24.02.2005, 16:26 Uhr Amaris Posts: 941 Nutzer |
Zitat: Naja....es kam jedenfalls bist jetzt noch nicht oft vor daß eine Installation auf Doppelklick funktioniert hat. Weder auf dem A1 noch auf dem 1200er. Woher weiß ich welche Assigns ich wohin machen muß ? Zitat: Da steht eigentlich nur: (all) Zeilenangaben stehen da ja nicht, aber laut "NotePad" war ich in Zeile 168. Hier mal die komplette Datei: http://www.amaris.de.vu/Install.script -- -Amiga 1200 + Blizzard 1230 IV, 120MB HDD, externes CD-ROM -AmigaOne (µA1, G3), 160GB HDD, 256MB RAM [ - Antworten - Zitieren - Direktlink - ] |
24.02.2005, 22:32 Uhr Reth Posts: 1858 Nutzer |
Zitat: Bei mir zum Glück schon. Ging öfter als es nicht ging (oder so )! Zitat: ;BEGIN GCC Installer assign GG: <Zielverzeichnis>/GG assign LIBS: GG:Sys/libs add path GG:bin add assign BIN: gg:bin ;END GCC Installer Zitat: Hm, schon seltsam, dass ist eigentlich nur das Argument für den Kopierbefehl! Am besten bei sowas auch mal Snoopdos mitlaufen lassen und nachsehen, was da versucht wird auszuführen. [ - Antworten - Zitieren - Direktlink - ] |
26.02.2005, 13:24 Uhr Amaris Posts: 941 Nutzer |
Hallo Ich überlege gerade ob ich mir vielleicht einfach mal die "Amiga Developer CD" bestellen sollte. Da ist "StormC" drauf, was sich dann hoffentlich installieren lassen sollte. Allerdings habe ich nur eine 120 MB Festplatte in meinem A1200. Davon sind noch etwa 70 MB frei. Reicht das für diese Developer-CD ? MfG Amaris -- -Amiga 1200 + Blizzard 1230 IV, 120MB HDD, externes CD-ROM -AmigaOne (µA1, G3), 160GB HDD, 256MB RAM [ - Antworten - Zitieren - Direktlink - ] |
26.02.2005, 14:22 Uhr Dietmar Posts: 166 Nutzer |
Zitat: Das wäre StormC3, also ein Compiler, der mit gcc nichts zu tun hat und nicht besonders gut ist. Erst ab StormC4 ist ein gcc-basierter Compiler dabei (StormC4 kostet bei H&P nur 49.90 EUR und wäre eine bessere Investition als die uralte Dev-CD für 20 EUR). Aber da Du generell Probleme mit Installationen zu haben scheinst - laut email auch mit meiner GoldED-Installation? - würde ich zuerst einmal das System aufräumen: da stimmt was nicht. In der GoldED-Installation gibt es garantiert keinen Fehler, der schon am Anfang zum Abbruch führt. - alle Hacks/Patches/OS-Verbesserungen runter (alle!): MFR, MCP, Pubscreen-Manager, Fenster-Verbesserer, PowerIcons usw. - OS3 auf den aktuellen Stand bringen - Installer aktualisieren und keinesfalls InstallerNG verwenden ftp://de.aminet.net/pub/aminet/util/misc/Installer-43_3.lha (bei der ersten Installation im About-Dialog überprüfen dass tatsächlich der gewünschte Installer verwendet wird und nicht zufällig ein alter Installer irgendwo im Pfad liegt). Wenn das alles nichts hilft ist vieleicht der Rechner selbst die Ursache: zu wenig RAM, überhitzte PPC-Karte, ...? Zitat: Keine Ahnung. Für eine GoldED-C/C++-Installation wäre das viel zu wenig (die benötigt, wenn man die meisten Compiler und SDKs installiert, einige hundert MB). [ - Antworten - Zitieren - Direktlink - ] |
26.02.2005, 21:38 Uhr Holger Posts: 8116 Nutzer |
Zitat:Wie von meinem Vorredner schon gesagt, ist der StormC nicht gerade frisch und wird Dir nicht unbedingt viel Freude bereiten. Aber zu Deiner konkreten Frage. Das NDK ist ca. 10MB groß, StormC noch mal so viel. Den Rest kannst Du Dir auch von CD aus angucken, bzw. selektiv auf die Platte kopieren. Dann kannst Du durchaus mit 70MB hinkommen. Um die ganze CD auf die Platte zu kopieren, wären über 200MB nötig, aber wie gesagt, das ist eigentlich nicht nötig. mfg -- Good coders do not comment. What was hard to write should be hard to read too. [ - Antworten - Zitieren - Direktlink - ] |
03.03.2005, 12:34 Uhr Amigalien Posts: 63 Nutzer |
>Das wäre StormC3, also ein Compiler, der mit gcc nichts zu tun hat und nicht besonders gut ist. Das kann man so nicht ganz stehen lassen. Der StormC3 ist im Vergleich zur v4 wesentlich schneller beim Compilieren und reicht für den Anfang meiner Meinung nach aus. Auch optimiert der StormC (MaxonC) besser. Der GCC aus StormC4 macht da diverse Fehler... Allerdings kann man bei v4 den StormC (MaxonC) 3.5 anstatt des GCC nutzen. Ich hab mit dem StormC3 angefangen und nutze nun unter OS 4.0 den gcc 3.4.2. Bye, Ricco [ - Antworten - Zitieren - Direktlink - ] |
03.03.2005, 13:43 Uhr gni Posts: 1106 Nutzer |
Zitat:Dem kann man zu stimmen. Zitat:Dem nicht. Zitat:Soso... Wird fehlerhafter Code erzeugt oder kannst Du einfach Deine Quellen nicht übersetzen? [ - Antworten - Zitieren - Direktlink - ] |
-1- | [ - Beitrag schreiben - ] |
amiga-news.de Forum > Programmierung > GCC Anfängerproblem | [ - Suche - Neue Beiträge - Registrieren - Login - ] |
Impressum |
Datenschutzerklärung |
Netiquette |
Werbung |
Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten. |