![]() |
ENGLISH VERSION |
|
![]() |
Links | | | Forum | | | Kommentare | | | News melden |
![]() |
Chat | | | Umfragen | | | Newsticker | | | Archiv |
![]() |
amiga-news.de Forum > MorphOS > g++ und mos | [ - Suche - Neue Beiträge - Registrieren - Login - ] |
-1- | [ - Beitrag schreiben - ] |
31.08.2004, 23:49 Uhr eliotmc Posts: 926 Nutzer |
Hallo, ich wollte mal kurz gcc vom mos sdk ausprobieren, und wollte folgendes absolut simples Programm kompilieren: ram:test.cpp #include <iostream> using namespace std; int main(){ cout <<"Test"<< endl; return(0);} mit gcc test.cpp -o test.exe bekomme ich nur Fehlermeldungen (undefined reference to "cout", ...) Wie kann das sein, ist das SDK nicht richtig installiert, oder gibt es kein <iostream> bzw. c++??? denn c source funktioniert: z.b #include <stdio.h> ... printf("test!"); ... komisch ,... -- regards eliot [ - Antworten - Zitieren - Direktlink - ] |
01.09.2004, 08:20 Uhr Inferno Posts: 157 Nutzer |
Hi eliot, probier mal g++ test.cpp -o test.ext hatte ähnliche Probleme mit diversen OS, nicht nur Amiga. Gruß, Inf. [ - Antworten - Zitieren - Direktlink - ] |
01.09.2004, 09:53 Uhr eliotmc Posts: 926 Nutzer |
Zitat: Hmm, hat leider auch nicht geholfen, ... ![]() -- regards eliot [ - Antworten - Zitieren - Direktlink - ] |
01.09.2004, 10:35 Uhr Inferno Posts: 157 Nutzer |
alternativ kannst Du noch versuchen, gegen eine andere lib zu linken via -lm, ... aber leider kenne ich mich mit MorphOS (mangels Hardware ![]() Beim 68K verwende ich auch immer noch -noixemul als Parameter. Gruß, Inf. [ - Antworten - Zitieren - Direktlink - ] |
01.09.2004, 10:49 Uhr Solar Posts: 3680 Nutzer |
@ eliotmc: Probier mal: #include <iostream> #include <ostream> [ Dieser Beitrag wurde von Solar am 01.09.2004 editiert. ] [ - Antworten - Zitieren - Direktlink - ] |
01.09.2004, 11:57 Uhr eliotmc Posts: 926 Nutzer |
Zitat: Hat auch nix gebracht. Es liegt wohl daran, dass er iostream nicht findet, deswegen kann er auch nichts mit cout anfangen . Die includes von c liegen in gg:include/, die vonn cpp in gg:include/g++-3. Wie kann ich dem compiler jetzt zu verstehen geben, dass er dort nach den includes schauen soll??? -- regards eliot [ - Antworten - Zitieren - Direktlink - ] |
01.09.2004, 12:04 Uhr Solar Posts: 3680 Nutzer |
-I Allerdings ist "undefined reference" eher ein Linker-Problem, d.h. der Compiler findet zwar durchaus die Deklaration zu cout (sonst käme ein "undeclared identifier" o.ä.), aber der Linker kann den Funktionscode nicht finden. Die Option ist -B. [ Dieser Beitrag wurde von Solar am 01.09.2004 editiert. ] [ - Antworten - Zitieren - Direktlink - ] |
01.09.2004, 12:30 Uhr eliotmc Posts: 926 Nutzer |
Zitat: -B und dann??? -- regards eliot [ - Antworten - Zitieren - Direktlink - ] |
01.09.2004, 12:39 Uhr Solar Posts: 3680 Nutzer |
Pfad zu dem Verzeichnis, in dem die passenden Object Files liegen, in denen cout dann implementiert ist. (Hätte man auch im GCC-Manual nachschlagen können.) (Und ja, Deine Compiler-Installation hat einen Knacks.) [ Dieser Beitrag wurde von Solar am 01.09.2004 editiert. ] [ - Antworten - Zitieren - Direktlink - ] |
01.09.2004, 13:25 Uhr eliotmc Posts: 926 Nutzer |
Zitat: Achso, komisch, gerade nochmal frisch installiert, selbes Problem -> Also scheint der install script von genesi ****** zu sein! Echt toll, na dann eben nicht, ... -- regards eliot [ - Antworten - Zitieren - Direktlink - ] |
01.09.2004, 14:08 Uhr tokai Posts: 1071 Nutzer |
c++ funzt nicht richtig mit dem public SDK. Für c++ brauchst du http://www.morphos.org/meanmachine/files/gcc-2.95.3-bin.tar.bz2 (CISC's version von morphos.org). Aus diesem Archiv einfach schon installierte "g++", "cc1plus" und "libstdc++.a" files ersetzen (die anderen files nicht über SDK installation darüber installieren). Vielleicht musst du noch einige links in gg:bin/ anpassen (don't remember ![]() regards, tokai -- http://www.christianrosentreter.com ~ MorphOS und AmigaOS Software [ - Antworten - Zitieren - Direktlink - ] |
01.09.2004, 14:46 Uhr Solar Posts: 3680 Nutzer |
Wie jetzt, auch bei MOS hängt man noch am 2.95 GCC? Au Mann... dann würde ich C++ lieber ganz bleiben lassen, denn der 2.95 ist alles andere als standardkonform... [ - Antworten - Zitieren - Direktlink - ] |
01.09.2004, 20:49 Uhr tokai Posts: 1071 Nutzer |
das public sdk vom letzten jahr hat nur den gcc2.95. ist auch für morphos/amigaos programmierung völlig ausreichend, da für diese systeme nunmal C und nicht C++ standard ist. Und die c++ ports die ich bisher gemacht habe, haben mit dem 2.95 auch hervorragend geklappt. ich sehe da überhaupt keinen Zwang sich neuere GCC versionen anzutun (die dafür bekannt sind keinen ordentlichen PPC code erzeugen zu können). regards, tokai -- http://www.christianrosentreter.com ~ MorphOS und AmigaOS Software [ - Antworten - Zitieren - Direktlink - ] |
02.09.2004, 06:25 Uhr Solar Posts: 3680 Nutzer |
Als jemand, der hauptsächlich C++ programmiert, sehe ich das etwas anders. Und welche Sprache "Standard" ist, ist mir ziemlich Wurst. Das ist ungefähr so, als würde auf einem OS auch nur Perl 4 laufen, weil's nicht die "Standardsprache" ist und sich bislang niemand die Mühe gemacht hat, Perl 5 zu portieren. (In Analogie, sich mal um den PPC-Support im GCC zu kümmern.) Das geht jetzt nicht gegen MorphOS im Besonderen (AmigaOS 4 steht da kaum besser da), aber mir zeigt das, wie wenig hier noch "bewegt" wird. [ - Antworten - Zitieren - Direktlink - ] |
03.09.2004, 11:39 Uhr eliotmc Posts: 926 Nutzer |
Zitat: Okay, ich habe die dateien kopiert, leider steht nichts dazu, welche links anzupassen sind, auf jeden Fall habe ich jetzt folgende Fehlermeldung: /gg/ppc-morphosbin/ld: cannot open -lamiga: no such file or directory collect2: ld returned exit 1 status gestartet habe ich wieder mit: g++ test.cpp -o test.exe -- regards eliot [ - Antworten - Zitieren - Direktlink - ] |
03.09.2004, 12:30 Uhr gni Posts: 1106 Nutzer |
Zitat:Zuviel kopiert? Oder zuwenig ;-) Installier das _original_ specs File wieder oder installier libamiga. [ - Antworten - Zitieren - Direktlink - ] |
03.09.2004, 12:38 Uhr tokai Posts: 1071 Nutzer |
Zitat: das klingt sehr seltsam. libamiga gibts nicht, nur libabox. Also angenommen du hast nur das SDK (am besten direkt den devenv MUI installer verwenden (versteckt im subdir) und dann noch die sed files manuall verschieben (gg:sedtemp/ -> gg:) installiert und die 3 files aus dem von mir genannten Archiv wie folgt ersetzt bzw. installiert: code:g++ -> gg:bin/g++ (link ersetzen) cc1plus -> gg:lib/gcc-lib/ppc-morphos/2.95.3/cc1plus (altes file ersetzen) libstdc++.a -> work:gnu/lib/gcc-lib/ppc-morphos/2.95.3/libstdc++.a (AFAIR link ersetzen) dann sollte das eigentlich klappen folgende links solltest du dann noch anpassen: code:gg:bin/c++ -> gg:bin/g++ gg:bin/ppc-morphos-c++ -> gg:bin/g++ gg:bin/ppc-morphos-g++ -> gg:bin/g++ Also wenn es dann nicht funktioniert, dann weis ich auch nicht. :-) regards, tokai -- http://www.christianrosentreter.com ~ MorphOS und AmigaOS Software [ Dieser Beitrag wurde von tokai am 03.09.2004 editiert. ] [ - Antworten - Zitieren - Direktlink - ] |
03.09.2004, 12:42 Uhr tokai Posts: 1071 Nutzer |
und dann mit:code:g++ test.cpp -o test.exe compilieren. Funktioinert hier. Hab's gerade zur Sicherheit nochmal getestet. ![]() regards, tokai -- http://www.christianrosentreter.com ~ MorphOS und AmigaOS Software [ - Antworten - Zitieren - Direktlink - ] |
06.09.2004, 12:25 Uhr eliotmc Posts: 926 Nutzer |
Zitat: Die Files habe ich kopiert, jedoch ist mir noch nicht ganz klar, was du mit Links anpassen gemeint sein soll. Wo stehen diese Links?? Weder in der user- , noch in der gg-startup. Nach Kopieren der Files habe ich immer noch das gleiche Problem -- regards eliot [ - Antworten - Zitieren - Direktlink - ] |
06.09.2004, 14:57 Uhr tokai Posts: 1071 Nutzer |
> cd BIN: > ls -l dann siehst du was links sind, werden dann wie folgt angezeigt: lrwxrwxrwx 1 nobody nogroup 1024 Jan 1 1970 ppc-morphos-addr2line -> /gg/bin/addr2line lrwxrwxrwx 1 nobody nogroup 1024 Jan 1 1970 ppc-morphos-ar -> /gg/bin/ar lrwxrwxrwx 1 nobody nogroup 1024 Jan 1 1970 ppc-morphos-as -> /gg/bin/as lrwxrwxrwx 1 nobody nogroup 1024 Jan 1 1970 ppc-morphos-c++ -> /gg/bin/g++ lrwxrwxrwx 1 nobody nogroup 1024 Jan 1 1970 ppc-morphos-g++ -> /gg/bin/g++ lrwxrwxrwx 1 nobody nogroup 1024 Jan 1 1970 ppc-morphos-gcc -> /gg/bin/gcc lrwxrwxrwx 1 nobody nogroup 1024 Jan 1 1970 ppc-morphos-ld -> /gg/bin/ld lrwxrwxrwx 1 nobody nogroup 1024 Jan 1 1970 ppc-morphos-nm -> /gg/bin/nm lrwxrwxrwx 1 nobody nogroup 1024 Jan 1 1970 ppc-morphos-objcopy -> /gg/bin/objcopy lrwxrwxrwx 1 nobody nogroup 1024 Jan 1 1970 ppc-morphos-objdump -> /gg/bin/objdump lrwxrwxrwx 1 nobody nogroup 1024 Jan 1 1970 ppc-morphos-ranlib -> /gg/bin/ranlib lrwxrwxrwx 1 nobody nogroup 1024 Jan 1 1970 ppc-morphos-strip -> /gg/bin/strip lrwxrwxrwx 1 nobody nogroup 1024 Jan 1 1970 zcat -> /gg/bin/gzip Das sind dummy-"dateien" (werden aber von vielen programmen als directories verstanden) die einfach auf eine real existierende Datei verweisen. z.b. ruft die eingabe von zcat dann gg:bin/gzip auf. Ich empfehle Filer von den Aminet CD's, damit lassen sich links sehr bequem bearbeiten. regards, tokai -- http://www.christianrosentreter.com ~ MorphOS und AmigaOS Software [ Dieser Beitrag wurde von tokai am 06.09.2004 editiert. ] [ - Antworten - Zitieren - Direktlink - ] |
06.09.2004, 17:23 Uhr eliotmc Posts: 926 Nutzer |
Zitat: Ich weiß, ich nerve, aber mit filer kann ich leider die Dateien nicht bearbeiten, ein Klick auf edit und Ähnliches bewirkt nichts! Wie kann ich ich sie damit bearbeiten??? Eine Anleitung liegt ja bei Filer auch nicht bei ![]() BTW Ganz dickes "schlecht gemacht" an Genesi und Verantworltiche, vielleicht bin ich auch nur zu doof, aber auf anderen Systemen geht das alles viel leichter! Wie soll man da erwarten, dass jemand Software entwickelt/umsetzt, wenn es nicht einmal ein vernünftiges aktuelles sdk/c++ gibt??? So langsam müssen die mal reinhauen, sonst schläft der Peg/Mos schneller wieder ein, als denen und uns das lieb ist, ... -- regards eliot [ - Antworten - Zitieren - Direktlink - ] |
07.09.2004, 10:06 Uhr tokai Posts: 1071 Nutzer |
[quote] Original von eliotmc: Zitat: Filer: erst den link löschen, und dann mit MakeLink einen neuen Link mit gleichen Namen erstellen. SDK: Auch wenn Solar etwas anderes behauptet/erwartet, für MorphOS-Entwicklung (und auch Amiga-Entwicklung) an sich ist nur C relevant und C++ ist nicht wirklich supportet. Und das sich da ein Fehler im SDK eingeschlichen hat (inkompatibilität zwischen linklib und compiler, AFAIK) ist wohl niemanden aufgefallen, weil niemand C++ code getestet hat. Bisher habe ich C++ nur einmal benötigt (für den mkvtoolnix port AFAIR, und an der Grösse des ports kannst du feststellen, dass da eine ganze Menge an c++ code compiliert werden musste. Du siehst also, dass wenn man ein wenig rumpatcht alles ohne Probleme funktioniert. ![]() Aber unabhängig davon stimmt es, dass das fehlerbehaftete SDK (spz. das devenv) längst durch ein Fehlerbereinigtes ersetzt hätte werden können. -- http://www.christianrosentreter.com ~ MorphOS und AmigaOS Software [ - Antworten - Zitieren - Direktlink - ] |
07.09.2004, 11:11 Uhr eliotmc Posts: 926 Nutzer |
Okay, jetzt funktionert es endlich! Vielen, vielen Dank! Aber warum kann man sowas (in meinen Augen ziemlich Wichtiges) nirgends nachlesen??? Habe mehrer Foren abgegrast?! Naja, egal, freut mich einfach nur das es jetzt funktioniert!!!!!! -- regards eliot [ - Antworten - Zitieren - Direktlink - ] |
10.09.2004, 09:34 Uhr Beeblebrox Posts: 723 Nutzer |
@tokai Wie wärs dann mit einem inoffiziellen fehlerbereinigten SDK ? :-) -- >>> bEeBlEbRoX <<< http://www.endlosstudent.de [ - Antworten - Zitieren - Direktlink - ] |
11.09.2004, 14:42 Uhr Dietmar Posts: 166 Nutzer |
Zitat: Inoffiziell gibt es das schon länger: einfach das MorphOS SDK über GoldED AIX installieren lassen. Die kostenlose GoldED AIX Version von der GoldED-Webseite reicht aus (75 MB). Dann wird zusätzlich zum offiziellen SDK-Material auch C++ installiert und man kriegt auch einen m68k-gcc, um AmigaOS3-Programme schreiben zu können. Allerdings ist C++ bis auf ein kurzes Hello World ungetestet. Wer das MOS SDK schon installiert hat, muss es vorher aus s:user-startup herausnehmen und sollte die zugehörigen env-Variablen löschen. [ - Antworten - Zitieren - Direktlink - ] |
11.09.2004, 15:35 Uhr Kronos Posts: 1168 Nutzer |
@Dietmar Öhm, also C++ als solches funktioniert auch mit dem normalen SDK, nur eben nicht vollständig. Bei komplizierten Templates und ähnlichen ist dann allerdings Schluss, weshalb ich mittlerweile den inoffiziellen gcc2.95.4 instlliert habe. http://www.tbs-software.com/morgoth/projects.html MfG Kronos -- Only the good die young all the evil seem to live forever [ - Antworten - Zitieren - Direktlink - ] |
11.09.2004, 17:01 Uhr Dietmar Posts: 166 Nutzer |
Zitat: Kann man diesen Compiler Deiner Erfahrung nach empfehlen? Falls ja, dann werde ich den ebenfalls integrieren. [ - Antworten - Zitieren - Direktlink - ] |
11.09.2004, 17:21 Uhr Kronos Posts: 1168 Nutzer |
@Dietmar Vorweg muss ich sagen das Morgoth bereits eine 3te Version erstellt hat, ich aber immer noch die 2te nutze. Bin halt zu faul ..... ![]() Das einizige Problem das ich bisjetzt habe ist das ein Vergleich zwischen 2 "double" immer falsch ist wenn sie unter 0.5 liegen (darüber passt es). Muss bei Gelegenheit mal die neueste Version probieren. MfG Kronos -- Only the good die young all the evil seem to live forever [ - Antworten - Zitieren - Direktlink - ] |
-1- | [ - Beitrag schreiben - ] |
amiga-news.de Forum > MorphOS > g++ und mos | [ - Suche - Neue Beiträge - Registrieren - Login - ] |
![]() |
Impressum |
Datenschutzerklärung |
Netiquette |
Werbung |
Kontakt
Copyright © 1998-2025 by amiga-news.de - alle Rechte vorbehalten. |
![]() |