amiga-news ENGLISH VERSION
.
Links| Forum| Kommentare| News melden
.
Chat| Umfragen| Newsticker| Archiv
.

amiga-news.de Forum > Programmierung > G++ mag <inline/muimaster.h> nicht [ - Suche - Neue Beiträge - Registrieren - Login - ]

-1- [ - Beitrag schreiben - ]

23.05.2006, 21:14 Uhr

Kaesebroetchen
Posts: 643
Nutzer
Ich versuche ein ganz einfaches MUI Programm mit dem G++ zu kompilieren. Leider hat der G++ ein ziemliches Problem mit dem Inline Include:

Weiß da vielleicht jemand eine Lösung ?


code:
Compiler: m68k-AmigaOS
Building Makefile: "C:\CrossCompiler\AmiDevCpp\MUI_Test\Makefile.win"
Führt  make clean aus
rm -f HelloMUI.o  TestProjekt.exe

m68k-amigaos-g++.exe -c HelloMUI.c -o HelloMUI.o -I"C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include"  -I"C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/include"  -I"C:/CrossCompiler/AmiDevCpp/usr/local/amiga/include/g++-3"    -noixemul -s

In file included from C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/proto/muimaster.h:16,
                 from HelloMUI.c:8:
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h: In function 'Object * MUI_NewObjectA(char *, TagItem *)':
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h:16: parse error before '__asm'
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h:17: parse error before '*'
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h:18: parse error before '*'
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h: In function 'void MUI_DisposeObject(Object *)':
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h:30: parse error before '__asm'
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h:30: parse error before '*'
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h: In function 'LONG MUI_RequestA(void *, void *, long unsigned int, char *, char *, char *, void *)':
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h:36: parse error before '__asm'
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h:36: parse error before '__asm'
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h:36: parse error before '__asm'
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h: In function 'void * MUI_AllocAslRequest(long unsigned int, TagItem *)':
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h:47: parse error before '__asm'
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h:47: parse error before '*'
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h:47: parse error before '*'
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h: In function 'BOOL MUI_AslRequest(void *, TagItem *)':
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h:58: parse error before '__asm'
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h:58: parse error before '*'
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h:58: parse error before '*'
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h: In function 'void MUI_FreeAslRequest(void *)':
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h:69: parse error before '__asm'
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h:69: parse error before '*'
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h: In function 'LONG MUI_Error()':
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h:75: parse error before '__asm'
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h: In function 'LONG MUI_SetError(long int)':
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h:81: parse error before '__asm'
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h:81: parse error before '*'
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h: In function 'struct IClass * MUI_GetClass(char *)':
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h:87: parse error before '__asm'
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h:87: parse error before '*'
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h: In function 'void MUI_FreeClass(IClass *)':
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h:93: parse error before '__asm'
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h:93: parse error before '*'
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h: In function 'void MUI_RequestIDCMP(Object *, long unsigned int)':
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h:99: parse error before '__asm'
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h:99: parse error before '__asm'
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h:99: parse error before '*'
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h: In function 'void MUI_RejectIDCMP(Object *, long unsigned int)':
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h:105: parse error before '__asm'
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h:105: parse error before '__asm'
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h:105: parse error before '*'
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h: In function 'void MUI_Redraw(Object *, long unsigned int)':
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h:111: parse error before '__asm'
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h:111: parse error before '__asm'
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h:111: parse error before '*'
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h: In function 'struct MUI_CustomClass * MUI_CreateCustomClass(Library *, char *, MUI_CustomClass *, int, void *)':
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h:117: parse error before '__asm'
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h:117: parse error before '*'
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h:117: parse error before '*'
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h: In function 'BOOL MUI_DeleteCustomClass(MUI_CustomClass *)':
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h:123: parse error before '__asm'
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h:123: parse error before '*'
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h: In function 'Object * MUI_MakeObjectA(long int, ULONG *)':
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h:129: parse error before '__asm'
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h:129: parse error before '*'
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h:129: parse error before '*'
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h: In function 'BOOL MUI_Layout(Object *, long int, long int, long int, long int, long unsigned int)':
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h:140: parse error before '__asm'
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h:140: parse error before '__asm'
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h:140: parse error before '__asm'
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h: In function 'LONG MUI_ObtainPen(MUI_RenderInfo *, MUI_PenSpec *, long unsigned int)':
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h:146: parse error before '__asm'
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h:146: parse error before '*'
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h:146: parse error before '__asm'
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h: In function 'void MUI_ReleasePen(MUI_RenderInfo *, long int)':
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h:152: parse error before '__asm'
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h:152: parse error before '__asm'
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h:152: parse error before '*'
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h: In function 'void * MUI_AddClipping(MUI_RenderInfo *, short int, short int, short int, short int)':
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h:158: parse error before '__asm'
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h:158: parse error before '__asm'
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h:158: parse error before '__asm'
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h: In function 'void MUI_RemoveClipping(MUI_RenderInfo *, void *)':
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h:164: parse error before '__asm'
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h:164: parse error before '__asm'
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h:164: parse error before '*'
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h: In function 'void * MUI_AddClipRegion(MUI_RenderInfo *, Region *)':
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h:170: parse error before '__asm'
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h:170: parse error before '*'
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h:170: parse error before '*'
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h: In function 'void MUI_RemoveClipRegion(MUI_RenderInfo *, void *)':
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h:176: parse error before '__asm'
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h:176: parse error before '__asm'
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h:176: parse error before '*'
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h: In function 'BOOL MUI_BeginRefresh(MUI_RenderInfo *, long unsigned int)':
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h:182: parse error before '__asm'
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h:182: parse error before '__asm'
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h:182: parse error before '*'
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h: In function 'void MUI_EndRefresh(MUI_RenderInfo *, long unsigned int)':
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h:188: parse error before '__asm'
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h:188: parse error before '__asm'
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h:188: parse error before '*'
make.exe: *** [HelloMUI.o] Error 1

Ausführung beendet

--
http://amidevcpp.amiga-world.de/

[ - Antworten - Zitieren - Direktlink - ]

23.05.2006, 22:32 Uhr

whose
Posts: 2156
Nutzer
@Kaesebroetchen:

Sieht so aus, als mag der g++ __asm() nicht. Also ohne die Inlines arbeiten und Stubs benutzen, sofern machbar.

Grüße

--
---

:boing: µA1 PPC 750GX-800
:boing: A4000 PPC 604e-233

[ - Antworten - Zitieren - Direktlink - ]

24.05.2006, 08:49 Uhr

Kaesebroetchen
Posts: 643
Nutzer
@whose:
Das ist mir schon klar.
Mein Problem dabei ist aber eher die praktische Ausführung ;( ;(

Bei Aros funktioniert das über die <define/muimaster.h> aber die hat wieder Abhängigkeiten nach Aros.
Es muß doch irgendwie halbwegs schmerzlos möglich sein, das ach so Objekt orientierte MUI mit einer Objekt orientierten Programmiersprache zu verwenden ?!
--
http://amidevcpp.amiga-world.de/

[ - Antworten - Zitieren - Direktlink - ]

24.05.2006, 09:26 Uhr

gni
Posts: 1106
Nutzer
Zitat:
Kaesebroetchen:
code:
m68k-amigaos-g++.exe -c HelloMUI.c -o HelloMUI.o
-I"C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include" 
-I"C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/include"
-I"C:/CrossCompiler/AmiDevCpp/usr/local/amiga/include/g++-3"
-noixemul -s


Woher kommen diese -I Optionen? Warum sind sie überhaupt da? Wenn Du die wirklich brauchst, dann ist die Installation falsch...

Zitat:
code:
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h: In function 'Object * MUI_NewObjectA(char *, TagItem *)':
C:/CrossCompiler/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include/inline/muimaster.h:16: parse error before '__asm'


Das sieht nach einem "alten" inline Header (der Funktionen statt LP-Makros verwendet) aus. Woher kommen die Includes?

Folgendes Testprogramm läßt sich mit allen mir zu Verfügung stehenden G++ Versionen übersetzen:
code:
#include <proto/muimaster.h>
LONG foo(void)
{ return MUI_RequestA(NULL,NULL,0,NULL,NULL,NULL,NULL); }

Ich verwende ein muimaster-Inline mit LP-Makros, das kann man zb. im YAMOS Repository finden.

[ - Antworten - Zitieren - Direktlink - ]

24.05.2006, 10:44 Uhr

DariusBrewka
Posts: 899
[Benutzer gesperrt]
Ich verwende für C++ bei MUI keine Inlines sondern -lmui, also eine Linkerlib, man kann die AFAIK mit fd2inline erzeugen. Unter 68k habe ich diese nicht, da ich unter 68k bisher kein c++ Programm erstellt habe.

[ - Antworten - Zitieren - Direktlink - ]

24.05.2006, 11:22 Uhr

Holger
Posts: 8116
Nutzer
Zitat:
Original von gni:
Das sieht nach einem "alten" inline Header (der Funktionen statt LP-Makros verwendet) aus. Woher kommen die Includes?


Hmm, ich habe mit fd2pragma und den diversen Optionen rumgespielt, ist allerdings etwas her.
So weit ich mich erinnern kann, gab es außer dem alt/neu Kriterium nur "Variante a"--"Variante b" artige Informationen zu den Optionen, so daß man nur selbst rumprobieren konnte.
Dabei konnte man im Prinzip nur inline erzeugen, die
a) mit C++ überhaupt nicht funktionierten
b) bei denen die normalen Funktionen funktionierten, varargs aber nicht
c) bei denen varargs Funktionen funktionierten, die anderen aber nicht

Prinzipiell könnte man aus diesen generierten Varianten sich eine funktionierende zusammenbasteln, aber warum fd2pragma nicht eine funktionierende per default erzeugen und in der Dokumentation eben jene als empfohlen ausweisen kann, das verstehe ich nicht ganz.

mfg
--
Good coders do not comment. What was hard to write should be hard to read too.

[ - Antworten - Zitieren - Direktlink - ]

24.05.2006, 13:19 Uhr

gni
Posts: 1106
Nutzer
Zitat:
Holger:
So weit ich mich erinnern kann, gab es [i]bei fd2pragma[/] außer dem alt/neu Kriterium nur "Variante a"--"Variante b" artige Informationen zu den Optionen, so daß man nur selbst rumprobieren konnte.

Bist Du sicher das es sich dabei um fd2pragma gehandelt hat? fd2inline hat --old/--new und das wars. fd2pragma hat für die GCC die Specials 40-48, wobei 40 die LP-Variante ist.

[ - Antworten - Zitieren - Direktlink - ]

24.05.2006, 15:10 Uhr

Kaesebroetchen
Posts: 643
Nutzer
Zitat:
Original von gni:

Woher kommen diese -I Optionen? Warum sind sie überhaupt da? Wenn Du die wirklich brauchst, dann ist die Installation falsch...


Die setzt Dev-C++, je nachdem welches Compilerset ausgewählt ist.
Daß das nicht gerade eine perfekte GNU-C Installation ist, weiß ich.
Die Sache hat aber den Vorteil, daß alle Compiler für alle Amiga Plattformen automatisch installiert werden und dann auch sofort funktionieren und man nicht erst in irgendwelchen SPECS Files oder ähnlichen herumfrickeln muß.


Zitat:
Ich verwende ein muimaster-Inline mit LP-Makros, das kann man zb. im YAMOS Repository finden.

Hast du dafür vielleicht einen Link ?
In fd2pragma müsste ich mich erst einarbeiten...

--
http://amidevcpp.amiga-world.de/

[ - Antworten - Zitieren - Direktlink - ]

24.05.2006, 15:29 Uhr

gni
Posts: 1106
Nutzer
Zitat:
Kaesebroetchen:
Zitat:
Original von gni:
Woher kommen diese -I Optionen? Warum sind sie überhaupt da? Wenn Du die wirklich brauchst, dann ist die Installation falsch...

Die setzt Dev-C++, je nachdem welches Compilerset ausgewählt ist.
Es _muß_ _ohne_ diese -I Optionen gehen! Alle dort angegeben Pfade sind Standard-Suchpfade für Header.
Zitat:
man nicht erst in irgendwelchen SPECS Files oder ähnlichen herumfrickeln muß.
Das ist _niemals_ notwendig.
Zitat:
Zitat:
Ich verwende ein muimaster-Inline mit LP-Makros, das kann man zb. im YAMOS Repository finden.
Hast du dafür vielleicht einen Link ?
http://svn.sourceforge.net/yamos/

Und woher sind die Includes nun?

[ - Antworten - Zitieren - Direktlink - ]

24.05.2006, 15:54 Uhr

Kaesebroetchen
Posts: 643
Nutzer
Zitat:
Original von gni:

http://svn.sourceforge.net/yamos/



Danke für den Link,
werde ich mir mal anschauen.

Zitat:
Und woher sind die Includes nun?

Falls du die MUI Includes meinst, die sind von Holger,
der vor einer Weile mal ein DevPak für AmiDevCpp gemacht hat.

http://amidevcpp.amiga-world.de/devpakupload.php
http://amidevcpp.amiga-world.de/DevPaks_erstellen.html
--
http://amidevcpp.amiga-world.de/

[ - Antworten - Zitieren - Direktlink - ]

24.05.2006, 16:17 Uhr

gni
Posts: 1106
Nutzer
Zitat:
Kaesebroetchen:
Falls du die MUI Includes meinst, die sind von Holger

Jetzt ist alles klar. Die von ihm erstellte Datei benutzt einen Inline-Typ (vermutlich special 44), der von G++ nicht unterstützt wird. Nur der C-Compiler kann Parameter explizit in Registern übergeben.

[ - Antworten - Zitieren - Direktlink - ]

24.05.2006, 18:20 Uhr

Holger
Posts: 8116
Nutzer
Zitat:
Original von gni:
Bist Du sicher das es sich dabei um fd2pragma gehandelt hat? fd2inline hat --old/--new und das wars. fd2pragma hat für die GCC die Specials 40-48, wobei 40 die LP-Variante ist.

Eben das. 8 verschiedene Optionen und das einzige, was man aus der Dokumentation erfahren kann, ist, daß bestimmte Varianten "alt", bzw. nicht empfohlen sind (meist die, die funktionieren) und andere "neuer", bzw. empfohlen sind (meist die, die nicht funktionieren).

Na ja, vereinfacht gesagt. Jedenfalls stellt die Tatsache, daß man den Varianten noch ne Nummer zwischen 40 und 48 zuordnen kann, keinen wirklichen Informations-Mehrwert gegenüber "alt" und "neu" dar.

mfg

--
Good coders do not comment. What was hard to write should be hard to read too.

[ - Antworten - Zitieren - Direktlink - ]

24.05.2006, 18:22 Uhr

Holger
Posts: 8116
Nutzer
Zitat:
Original von gni:
Jetzt ist alles klar. Die von ihm erstellte Datei benutzt einen Inline-Typ (vermutlich special 44), der von G++ nicht unterstützt wird. Nur der C-Compiler kann Parameter explizit in Registern übergeben.


Ich hatte auch nach dem Upload mit verschiedenen Optionen experimentiert. Da es aber keine gab, mit der das Ergebnis sowohl unter C, also auch C++ und mit varargs und ohne funktioniert hätte, hatte ich keine andere Version mehr hochgeladen...

mfg
--
Good coders do not comment. What was hard to write should be hard to read too.

[ - Antworten - Zitieren - Direktlink - ]

25.05.2006, 18:21 Uhr

Chritoph
Posts: 549
Nutzer
Doofe Frage;

was passiert wenn man sowas macht:

[code]
extern "C" {#include <proto/muimaster.h>}
...
[\code]

?
Geht das nicht?
--
A4000T - 128 MB - 233MHz 604e - 50MHz 68060 - SCSI Platten - Voodoo 3 3000 / Mediator / SB4.1 digital / Highway / Norway / RLT8029

A1200 - 32 MB - 50MHz 68030 & 68882 - IDE Platten - Fiberline Netzwerkkarte

[ Dieser Beitrag wurde von Chritoph am 25.05.2006 um 18:22 Uhr geändert. ]

[ - Antworten - Zitieren - Direktlink - ]

26.05.2006, 13:16 Uhr

Holger
Posts: 8116
Nutzer
Zitat:
Original von Chritoph:
Doofe Frage;

was passiert wenn man sowas macht:
code:
extern "C" {#include <proto/muimaster.h>}
...

?
Geht das nicht?


Nein.

mfg
--
Good coders do not comment. What was hard to write should be hard to read too.

[ - Antworten - Zitieren - Direktlink - ]

29.05.2006, 18:53 Uhr

Kaesebroetchen
Posts: 643
Nutzer
Ich habe mir jetzt mit fd2pragma ein funktionierendes inline erzeugt.
Ich kann mein Programm jetzt fehlerfrei kompilieren und linken.
Wenn ich mein Programm mit -noixemul kompiliere, stürzt es mir beim Aufruf mit Fehler 80000002 ab.
Wenn ich das -noixemul weglasse, kriege ich in der Shell beim Aufruf je zwei mal ein Bus error.
Wenn ich das Programm mehrmals nacheinander aufrufe wird daraus ein
EMT trap. :dance3: :dance3: :dance3: :dance3:


--
http://amidevcpp.amiga-world.de/

[ - Antworten - Zitieren - Direktlink - ]

29.05.2006, 19:12 Uhr

Kaesebroetchen
Posts: 643
Nutzer
Liegt wohl nicht an den Includes.
Ich habe das Beispielprogramm von Holger an den G++ angepaßt,
und das läuft Problemlos.
--
http://amidevcpp.amiga-world.de/

[ - Antworten - Zitieren - Direktlink - ]


-1- [ - Beitrag schreiben - ]


amiga-news.de Forum > Programmierung > G++ mag <inline/muimaster.h> nicht [ - Suche - Neue Beiträge - Registrieren - Login - ]


.
Impressum | Datenschutzerklärung | Netiquette | Werbung | Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten.
.