allanswers.org - German Amiga-FAQ (Haeufig gestellte Fragen) (Part 2 of 4)

 Home >  FAQ on different themesde-amiga-faq >

German Amiga-FAQ (Haeufig gestellte Fragen) (Part 2 of 4)

Section 2 of 2 - Prev - Next


               if (id = AllocMem(sizeof (struct InfoData),
                                MEMF_PUBLIC | MEMF_CLEAR)) {
                 if (mp = CreatePort(NULL, 0)) {
                   sp->sp_Msg.mn_Node.ln_Name = (char *) &sp->sp_Pkt;
                   sp->sp_Pkt.dp_Link         = &sp->sp_Msg;
                   sp->sp_Pkt.dp_Port         = mp;
                   sp->sp_Pkt.dp_Type         = ACTION_DISK_INFO;
                   sp->sp_Pkt.dp_Arg1         = MKBADDR(id);
       
                   PutMsg(cfh->fh_Type, &sp->sp_Msg);
                   (void) WaitPort(mp);
                   (void) GetMsg(mp);
       
                   if (sp->sp_Pkt.dp_Res1)
                     w = (struct Window *) id->id_VolumeNode;
       
                   DeletePort(mp);
                 }
                 FreeMem(id, sizeof (struct InfoData));
               }
               FreeMem(sp, sizeof (struct StandardPacket));
             }
           }
       
           return w;
         }
  
     Anmerkungen:
     * Auf ein CON-Fenster direkt zuzugreifen kann Konflikte mit Aktionen
       des CON-Handlers hervorrufen. Seien Sie vorsichtig!
  
     * Um den Window-Zeiger einer CLI-Konsole zu erhalten, übergibt man
       ein durch Open("*", MODE_OLDFILE) gewonnenes FileHandle an obige
       Funktion.
  
     * Das Ergebnis der obigen Funktion kann sehr wohl NULL sein, etwa im
       Falle eines AUX-Handlers oder falls ein AUTO-CON-Handler sein
       Fenster nicht öffnen kann.
  
     * Schickt man ein ACTION_DISK_INFO-Paket an einen AUTO-CON-Handler
       (2.0+), so verliert dessen Fenster seine speziellen
       AUTO-Eigenschaften (es kann also nicht mehr durch das Betätigen
       des Close-Gadgets geschlossen werden), weil der in id_VolumeNode
       gelieferte Window-Zeiger gültig bleiben muß.
  
     * Alles in allem: Verwenden Sie diese Funktion nicht. :-)
  
     Weitere Informationen finden Sie auf den Seiten 273, 276, 435, 463,
  485 und 629 im "Amiga Guru Book" (siehe Dokumentation).
  
     Ralph Babel, rbabel@babylon.pfm-mainz.de
  
  4.10 Was sind Pragmas?
  ======================
  
     Pragmas sind spezielle Anweisungen an den C-Compiler.  Zwei Probleme
  entstehen bei der Verwendung von Pragmas:
    1. Pragmas sind hochgradig compilerspezifisch. Nicht einmal die
       Amiga-Compiler haben dieselben Pragmas, selbst wenn damit das
       gleiche bewirkt wird.
  
    2. Man kann sich nicht darauf verlassen, daß ein Compiler Pragmas
       ignoriert, die er nicht versteht. Dies gilt selbst dann, wenn man
       einen Ausdruck wie den folgenden verwendet:
                #ifndef MY_COMPILER
                #pragma DoAnything
                #endif
  
  Das letztere Problem läßt sich umgehen, indem man Pragmas wie folgt
  in eigene Include-Files setzt. (Das gleiche gilt übrigens auch für
  Präprozessor-Kommandos wie #asm (Aztec-C) oder #extern (C++).)
           #ifndef MY_COMPILER
           #include 
           #endif
  
     Aber was machen Pragmas auf dem Amiga? Meistens werden sie verwendet,
  um dem Compiler mitzuteilen, wie gewisse Library-Funktionen aufgerufen
  werden. (Tatsächlich wird fast immer diese Verwendung gemeint, wenn
  Amiga-Besitzer über Pragmas sprechen.) Gewöhnliche C-Funktionen
  erwarten ihre Argumente auf dem Stack, Library-Funktionen dagegen in
  bestimmten Registern. Ferner erwarten sie den `Library-Base-Pointer' in
  Register a6.  Betrachten wir eine Pragma-Anweisung von Aztec-C:
           #pragma amicall(SysBase,0xd2,FreeMem(a1,d0))
  
  Dies weist den Compiler an, das erste Argument in Register a1 und das
  zweite in d0 zu laden. Ferner wird der Inhalt der Variablen SysBase in
  Register a6 geladen. Maxon-Pragmas sehen genauso aus, Dice- und
  SAS-Pragmas sind allerdings etwas komplizierter:
           #pragma libcall SysBase FreeMem d2 0902
  
  Hier ist d2 (wie 0xd2 oben) der `Library-Vektor-Offset' (siehe
  nächstes Beispiel). Die letzte Ziffer ist die Zahl der Argumente, die
  davorstehende 0 ein Code für das Register mit dem Ergebnis und die
  davor stehenden Ziffern sind Codes für die Register mit den Argumenten
  in verkehrter Reihenfolge. (Die Codes bedeuten 0=d0, 1=d1, .., 8=a0,
  9=a1, a=a2, ..)
  
     Ein Kommando wie `FreeMem(fib,sizeof(*fib);' würde ein Compiler nun
  in folgenden Code übersetzen:
           move.l  _fib,a1
           move.l  260,d1	    ; sizeof(struct FileInfoBlock)
           move.l  _SysBase,a6
           jsr     -0xd2(a6)       ; 0xd2 = _LVOFreeMem
  
  FreeMem in dieser Art aufzurufen ist kürzer und schneller als
  zunächst die Argumente auf den Stack zu legen und dann eine Funktion
  _FreeMem aufzurufen, die letzten Endes doch nur dasselbe tun und die
  Argumente vom Stack in dieselben Register laden würde.
  
     Das Portierungsproblem der Pragmas umgeht man, indem man sie
  folgendermaßen in den eigenen Quelltext einbindet:
           /*  SAS/C, Dice und GNU-c (ab Version 2.6.1) machen es	*/
           /*  ganz einfach:						*/
           #if defined(__SASC)  ||  defined(_DCC)  ||  defined(__GNUC__)
             #include 
           #else
       
             /*  Lade den Funktionsprototyp. Dieser ist nicht vom	*/
             /*  verwendeten Compiler abhängig.			*/
             #include 
       
             /*  Pragmas sind vom Compiler abhängig, aber wenigstens	*/
             /*  die Namen der Dateien mit Pragmas sind relativ	*/
             /*  einheitlich.						*/
             #ifdef AZTEC_C
               #include 
             #elif defined(__MAXON__)
               #include 
             #endif
       
             /*  Deklariere SysBase-Variable				*/
             extern struct ExecBase *SysBase;
           #endif
  
  Das obige Beispiel kann problemlos mit allen angegebenen Compilern
  verwendet werden und produziert optimalen Code. (Die proto/*.h-Files
  machen übrigens auch nichts anderes als clib/*_protos.h und
  pragmas/*_pragmas.h mit #include einzulesen und dann die
  SysBase-Variable zu deklarieren.)
  
     Eine abschließende Frage bleibt allerdings: Wie bekommt man die
  Pragmas?  Die meisten Compiler haben bereits fertige Pragmas im
  Lieferumfang.  Allerdings hilft das nicht, wenn man z.B. eine neue
  Library benutzen möchte oder nur die Pragmas einer veralteten Version
  hat. In diesem Fall kann man die Pragmas selbst aus den sogenannten
  `FD'-Files erzeugen.  Dazu haben die meisten Compiler ein Utility
  namens `fd2pragma'.  (Das NDU hat z.B. ein Directory namens FD, in dem
  die FD-Files aller Libraries und Devices des OS enthalten sind. siehe
  Include-Dateien) Es gibt auch ein frei kopierbares fd2pragma, das
  Pragmas für Aztec, Dice, SAS und Maxon sowie LVO-Files für den
  Aztec-Assembler und eventuelle Tag-Versionen produziert. (Aminet,
  `dev/misc/fd2pragma2_0.lha' oder auf den Fish-CDs)
  
     Für Pragmas unter dem gcc siehe Inline-Dateien.
  
  4.11 Mein Compiler/Linker vermißt Symbole.
  ==========================================
  
     Zunächst sollte man sich versichern, daß die Funktion tatsächlich
  fehlt: Z.B. Floating-Point-Funktionen befinden sich in einer speziellen
  Link-Library, die erst mit der Option `-lm' eingebunden wird.  Ferner
  kann es eine fehlende Variable sein: Wenn man z.B. ohne es zu bemerken
  eine Intuition-Funktion benutzt, dann wird der Linker über das Fehlen
  eines Symbols `IntuitionBase' klagen. In diesem Fall muß man also
  lediglich das Folgende irgendwo im globalen Teil seines Quelltextes
  einbauen:
           struct Library *IntuitionBase;
  
  (Und vergessen Sie nicht, die Library mit OpenLibrary() zu eröffnen und
  mit CloseLibrary() zu schließen!) :-)
  
     Allerdings könnte die Funktion natürlich tatsächlich fehlen. Wenn
  man zum Beispiel nur die Version 2.0 der amiga.lib hat, dann fehlen
  etwa die Locale-Funktionen oder die Memory-Pool-Funktionen, obwohl sie
  prinzipiell verwendbar sind. (1) Die einfachste (und beste) Lösung
  ist, das sogenannte NDU zu kaufen.  Siehe Include-Dateien. Wer nicht
  solange warten möchte, für den ist die Frage, welche Art von Funktion
  in seiner Link-Library fehlt:
     * Einfache Amiga-Library-Funktionen (z.B. `exec/AllocPooled' oder
       `locale/OpenCatalogA') kann man mit Pragmas aufrufen und braucht
       dann lediglich Informationen über die Aufrufkonventionen
       (Library-Base, Library-Vektor-Offset und Argumentregister)
  
     * Tag-Funktionen sind meistens einfach Zwischenfunktionen, die ihre
       Argumente auf dem Stack erwarten und dann die eigentliche
       Library-Funktion aufrufen. Wenn man z.B. die Funktion
       `dos/AllocDosObject', die eine Konstante und einen Zeiger auf ein
       Array als Argumente erwartet, nach der obigen Methode konstruiert
       hat, dann hat man damit auch ihre Stack-Variante! Dazu erzeugt man
       einfach die folgende Funktion:
                #include 
                #include 	/*  Evtl. anderer Name	*/
            
                void *AllocDosObjectTags(ULONG objtype, Tag tag1, ...)
                { return(AllocDosObject(objtype, (struct TagItem *) &tag1);
                }
  
       Mit fd2pragma kann das auch automatisch geschehen. Siehe Pragmas.
  
     * Einige Funktionen bleiben aber noch übrig: Amiga.lib enthält
       nämlich auch Funktionen, die für sich selbst interessant sind,
       z.B. die BOOPSI-Funktionen (`DoMethod', `DoSuperMethod'), die
       Memory-Pool-Funktionen (`LibAllocPooled', `LibCreatePool', die
       Ersatz für entsprechende 3.0-Funktionen sind) oder `HookEntry',
       das sehr hilfreich bei der Programmierung von Hooks ist. Diese
       kann man nur durch entsprechende, disassemblierte und neu
       assemblierte oder compilierter Versionen ersetzen. Im
       AmigaFAQ-Archiv sind einige dieser Funktionen bereits enthalten.
  
     ---------- Footnotes ----------
  
     (1)  Dieses Problem  betrifft vor allem Besitzer von Aztec-C, das
  seither nicht weiter unterstützt wird und von Dice, der manchmal etwas
  unvollständig ist. Ich besitze beide ..
  
  4.12 Wie erfahre ich, was für Funktionen es gibt?
  =================================================
  
     Wenn Sie sich über den Namen einer für einen bestimmten Zweck
  geeigneten Funktion im Unklaren sind, dann gibt es folgende
  Möglichkeiten:
     * In den Autodocs der verschiedenen Libraries findet man am Anfang
       eine alphabetisch sortierte Tabelle aller Funktionen, die die
       betreffende Library bietet. Im Hauptteil findet man dann eine
       detaillierte Spezifikation aller Funktionen. Siehe Include-Dateien.
  
     * Die `.FD'-Dateien bieten eine sehr kompakte Übersicht über die
       Funktionen der diversen Libraries, sogar mit einer kurzen Angabe
       der Funktionsargumente. Wenn man schon grob weiß, wonach man
       sucht (z.B. nur die grobe Angabe der Argumente benötigt), dann
       findet man hier alle gewünschten Informationen. Siehe Pragmas.
  
     Dr. Peter Kittel, peterk@cbmger.de.so.commodore.com
  
  4.13 Der GNU C Compiler: Allgemeine Informationen und Installation
  ==================================================================
  
     Dieser Abschnitt enthält Informationen über den Amiga-Port des GNU
  C Compilers generell und die Installation insbesondere.
  
  4.13.1 Aktuelle Version
  -----------------------
  
     Die aktuelle gcc-Version ist 2.6.0 und an 2.6.1 wird gearbeitet.
  Sie enthält eine neue Version der ixemul.library (v40.3), aber man
  sollte sich wegen Fehlern, die sich auf 68000-Systemen bemerkbar
  machen, ixemul404.lha vom Aminet oder von meiner FTP-Site holen.
  Außerdem gibt es eine neue library, libnix, die das Benützen der
  ixemul.library verhindert.  2.6.1 wird Protos (wie bei SAS-C)
  enthalten, um das Kompilieren von SASC-Code unter gcc leichter zu
  machen.  Ein neuer Assembler, gas-2.5, ist enthalten, ein Paket namens
  q_anote ermöglicht die Ausgabe von gemischtem C/Asm-Code zu
  Debugging-Zwecken.  In Arbeit ist die Fähigkeit des Compilers, den
  Stack wachsen zu lassen, damit man vor dem Starten von gcc nicht mehr
  den Stack setzen muß.
  
  4.13.2 Hardwareanforderungen
  ----------------------------
  
     Jeder Amiga (vom A1000 bis zum A4000/40) ist prinzipiell in der
  Lage, die GNU-Utilities für AmigaDOS zu benutzen. Allerdings braucht
  man wenigstens 4MB RAM, um kleinere oder mittlere Projekte zu
  übersetzen, für größere (z.B. für gcc selbst) entsprechend mehr.
  Gigamem und VMM arbeiten mit gcc zusammen, es *könnte* also evtl.
  auch mit weniger gehen. Dazu braucht man aber eine MMU.  Siehe 68EC0xx.
  
     Eine volle Installation mitsamt C++ und Objective-C, inline-Dateien
  und Commodore Includes (siehe Include-Dateien) benötigt ca. 20 MB
  Platz auf der Festplatte.
  
     Kickstart 1.2/1.3 wird nicht mehr unterstützt. Wer KS 1.2/1.3 hat,
  sollte sich eine bessere Kickstart-Version kaufen.  Gcc arbeitet auch
  unter Kickstart 1.2/1.3, die volle Funktionalität ist aber erst ab
  Kickstart 2.x+ vorhanden. Eine schnelle CPU (z.B. 68030@25MHz oder
  besser) ist ebenfalls sinnvoll.
  
  4.13.3 Wer hat es gemacht?
  --------------------------
  
     Gcc und damit zusammenhängende Software wurde von den folgenden
  Personen auf den Amiga portiert (siehe Hilfe):
       	Gcc v2.2.2:   Markus Wild
       	Gcc v2.3.3:   Markus Wild
       	Gcc v2.4.5:   Philippe Brand, Lars Hecking, Fred Fish
       	Gcc v2.5.0 und später: Philippe Brand, Fred Fish, Leonard Norrgard
       
       	Ixemul.library:    Markus Wild, Leonard Norrgard, R. Luebbert
       	Libnix:		   Matthias Fleischer, Gunther Nikl
               Gerlib:            Gerhard Müller
  
  4.13.4 Wo finde ich die gcc-Quelltexte?
  ---------------------------------------
  
     Alle gcc-Quelltexte und alle Binärdateien findet man auf:
  
    1. Aminet (wuarchive.wustl.edu und Mirror wie ftp.luth.se) in
       /pub/aminet/dev/gcc (siehe FTP)
  
    2. Ramses The Amiga Flying BBS:
            	+33-1-60037015  HST Dual v32 terbo 4800-21600
                    +33-1-60037713  SupraFax v32bis    4800-14400
                    +33-1-60037716  Tornado v22bis     1200-2400
       in Topic `Development', Area `Gcc' (are 156).
  
     Den originalen GNU-Quelltext bekommt man
  
    1. von denselben FTP-Servern wie die Binaries
  
    2. gnu.prep.ai.mit.edu (18.71.0.38) in `/pub/gnu'
  
    3. Ramses The Amiga Flying BBS in Topic
       `AmigaUnix/Unix/Linux/NetBSD', Area `Gnu Source Code'
  
     Diese Archive sollten alles Nötige enthalten, mit Ausnahme der
  Quelltexte der ixemul.library. Diese erhält man ebenfalls auf dem
  Aminet, Directory `dev/gcc'. (Zur Zeit ist die Version 40 der
  ixemul.library in Arbeit. Die Quelltexte werden am gleichen Ort sein.)
  
     Durch Richard Stallman, Free Software Foundation, ist festgelegt:
  
     "The GPL says that any distribution of binaries must contain either
  the source code or a written offer to supply source code (see the GPL
  for details of what is required)."
  
     Übersetzt: Die GPL (GNU General Public License) legt fest, daß jede
  Distribution entweder den Quelltext oder das schriftliche (oder
  geschriebene?) Angebot, diese zu liefern, enthalten muß. (Näheres
  siehe in der GPL.)
  
  4.13.5 Inline-Dateien
  ---------------------
  
     Die Inline-Dateien für den gcc kann man aus den originalen
  FD-Dateien von Commodore wie folgt erzeugen (Siehe Include-Dateien,
  siehe Pragmas):
  
       CLI> Assign INCLUDE: GCC:os-include
       CLI> Assign FD: INCLUDE:fd
       CLI> Makedir INCLUDE:inline
       CLI> cd USR:bin/geninline
       CLI> gen31
  
     Dies sollte alle Inline-Dateien in `GCC:os-include/inline' erzeugen.
  Falls man die 2.0- bzw. 3.0-Includes besitzt, sollte man gen20 bzw.
  gen30 benutzen. Inline-Dateien für OS3.1 (rev 40.13) sind in
   enthalten. Siehe Aktuelle Version.  (1)
  
     Auch mit dem Programm fd2inline kann man Inline-Dateien erzeugen:
  
       CLI> fd2inline  
  
     ---------- Footnotes ----------
  
     (1)  Perl Skripte haben Schwierigkeiten, die Include-Dateien von
  AmigaDOS korrekt zu behandeln. Hier wäre etwas freiwillige Arbeit
  nötig ...
  
  4.13.6 Wie konvertiere ich die Amiga-Libraries für den gcc?
  -----------------------------------------------------------
  
     Ab gcc Version 2.6.0 werden dank den libnix-Autoren (Matthias
  Fleischer und Gunther Nikl) AmigaDOS Linklibraries unterstützt.
  
     Wenn man trotzdem eine gcc-Linklibrary generieren will, gibt es zwei
  Methoden:
  
     1. Mit hunk2gcc, dem AmigaDOS-Object-Konvertierer von Markus Wild.
  Dazu braucht man zunächst eine aktuelle Kopie der amiga.lib (aus dem
  NDU, siehe Include-Dateien). Nachdem man sich ein Directory für die
  konvertierten Dateien erstellt hat, wechselt man mit cd in dieses
  Directory und gibt das Folgende ein:
       	hunk2gcc amiga.lib [..further libs if you like..]
  
  Dies erzeugt ein Objektfile wie a.out für jedes einzelne Modul, das
  die Library enthält. Diese Module muß man anschließend in einer
  gcc-Library zusammenfassen:
       	ar qc libamiga.a obj.*
       	ranlib libamiga.a
  
  Das Programm ranlib fügt eine Symboltabelle in die Library ein.
  (Dadurch wird der Zugriff auf die Library sehr viel schneller.)
  
     2. Eine libamiga.a mit libnix zu generieren ist recht leicht, braucht
  aber einige Zeit. Man dekomprimiere sources.lha aus dem libnix-Archiv
  und starte ein 'make libamiga.a'.
  
     *Beachte:* Solange man keine reinen AmigaDOS-Funktionen verwendet,
  kann man auch eine Pseudo-Library erzeugen:
         cat "int dummy;" >dummy.c
         gcc -c dummy.c
         ar crv libamiga.a dummy.o
         mv libamiga.a gcc:lib
  
  4.13.7 Wie installiere ich den gcc?
  -----------------------------------
  
    1. Falls dies die erste Installation von gcc ist:
  
       Mache das Folgende:
  
            cd ort_mit_sehr_viel_platz      ; ÄNDERN! Gib eine Schublade an
            makedir gnu
            lha x gcc260-base.lha           ; Der erste Teil, du brauchst ihn
  
       Jetzt mußt du `gnu/s/user-startup' an dein `S:User-Startup'
       anhängen (Ersetze Devel:GNU durch deinen eigenen Gnu Pfad).
  
       Weiter:
  
            execute gnu/s/user-startup     ; setzt wichtige Assigns
            copy gnu/envarc/#? ENVARC:
  
       *Ändere* die folgenden Zeilen!  Wenn du einen 68000- oder
       68010-Amiga hast, entferne das "-020" aus allen folgenden Zeilen!
  
            lha x gcc260-c-020.lha      ; Der C-compiler; du brauchst ihn
            lha x gcc260-doc.lha        ; Wenn du die Dokumentation zu gcc willst
            lha x gcc260-c++-020.lha    ; Wenn du C++ haben willst
            lha x gcc260-objc-020.lha   ; Wenn du Objective-C haben willst
            lha x gcc260-utils.lha      ; Wenn du zusätzliche Utilities haben willst
                                        ; (empfohlen zur Kompatibilität mit Unix)
            lha x gcc260-utilsdoc.lha   ; Wenn du Dokumentation zu allen Utilities willst
  
       Mit dem Script `restorelinks' mußt du Links generieren:
  
            sh /gnu/s/restorelinks      ; ÄNDERN! Füge " copy" an diese Zeile an,
                                        ; wenn du MakeLink nicht benützen willst,
                                        ; sondern Files lieber kopieren willst
  
       Schließlich:
  
            lha x gcc260-diffs.lha      ; Wenn du gcc neu kompilieren willst
            lha x gcc260-texi.lha       ; Wenn du Postscript-Doku generieren willst
  
       Auf zum nächsten Punkt und fröhliches Kompilieren!
  
    2. Wenn du ein Upgrade deiner gcc-Umgebung von v2.5.x machen willst,
       dearchiviere einfach gcc260-base.lha und gcc260-c-020.lha. Gehe
       sicher, daß du deine frühere ixemul.library löschst, wo sie
       sich auch befindet.  (Üblicherweise in `LIBS:')
  
  
     *Beachte*: Eine neue Version der ixemul.library wird verwendet, gehe
  bitte sicher, daß nirgends eine andere Kopie ist, die in Konflikt mit
  der neuen Version geraten kann.
  
  4.13.8 Kompilieren
  ------------------
  
     Wie wär's mit einem netten `Hello world'?
  
       #include 
       
       main()
       {
         printf("Hello World!\n");
       }
  
     Das war recht einfach ;-) Jetzt müssen wir es kompilieren.  Es gibt
  eine Menge Optionen in gcc, aber die einfachste Möglichkeit zu
  kompilieren ist:
  
       CLI> gcc -o hello hello.c
  
     Einfach?  Hier sind mehr Optionen:
  
     Ziel-Prozessoren von Motorola: Man kann reinen 68000 code, 68020,
  68030, 68040 und/oder 68881 kompilieren.  (Siehe Gcc-Dokumentation,
  Kapitel `Invoking Gcc/SubModel Options/M680X0 Options for Motorola
  specific compilation flags'.
  
       CLI> gcc -m68020 -m68881 -o hello hello.c
  
     Dies kompiliert Programme mit 68020 Code und direkten FPU-Befehlen
  und bindet mit den beschleunigten Libraries aus `GCC:lib/lib020'.
  
     Optimierung: Entweder du willst keine Optimierung oder du gibst `-O'
  an, das den Code optimiert, oder `-O2' für bessere Optimierung (Siehe
  die Dokumentation im Kapitel `Invoking Gcc/Optimize Options').
  Inzwischen gibt es auch eine `-O3' Option, die noch weiter geht.
  
       CLI> gcc -O2 -o hello hello.c
  
     Ein schnelles "Hello World" ;-)
  
     Codegenerierung: Vielleicht willst du residente Programme haben.
  Die Option dazu heißt `-resident'.
  
       CLI> gcc -resident -o hello hello.c
  
     Natürlich kannst du alle Optionen mischen, so etwa:
  
       CLI> gcc -O2 -m68020 -m68881 -resident -o hello hello.c
  
     Dies wird ein hoch optimiertes residentes Programm für 68020 und
  68881 ergeben.
  
     *Wichtig:* Wenn du nur AmigaOS-Funktionen verwendest oder aus
  irgendwelchen philosophischen Gründen keine ixemul.library verwenden
  willst, dann kannst du diese loswerden durch:
  
       CLI> gcc -noixemul -o foobar foobar.c
  
     natürlich nur, wenn du libnix hast (enthalten in gcc 2.6.0).
  
  4.13.9 Wichtige Informationsquellen
  -----------------------------------
  
     Der aktuelle Betreuer des Amiga-Ports von gcc ist:
           Philippe BRAND
           Fidonet: Ramses The Amiga Flying BBS 2:320/104.21
           Email:   phb@colombo.telesys-innov.fr (ONLY for personnal email).
           Ftp:     colombo.telesys-innov.fr:/pub/amigados-gnu
                    or /pub/incoming/uploads for uploads.
  
     Es gibt auch eine Mail-Liste in Finnland. Siehe Mail-Listen.
  Philippe Brand wird im Normalfall Fragen an diese Liste weiterleiten.
  

Section 2 of 2 - Prev - Next

Back to category de-amiga-faq - Use Smart Search
Home - Smart Search - About the project - Feedback

© allanswers.org | Terms of use

LiveInternet