[Sammelthema] Software entwickeln für Amiga OS4

...für und mit Amiga OS4

Moderator: OS4Welt-Team

Benutzeravatar
turbo4.1
Ignition-Team
Beiträge: 1738
Registriert: 23. Dezember 2009 18:27
Hat sich bedankt: 8 Mal
Danksagung erhalten: 45 Mal

Re: [Sammelthema] Software entwickeln für Amiga OS4

Beitrag von turbo4.1 »

muss man wirklich g++ angeben, geht es nicht auch mit gcc der compiler companien sollte doch automatisch das richtige fontend für die sprache aktivieren.
probiere es doch mal in der codebench mit dem aufruf des gcc.
versuch macht klug :-)
Sam460ex mit Yeston RX550 4GB (Single Slot, Low Profile), Sam440Flex (666MHz) mit Radeon HD5450 PCI, CDTV mit 270MB SCSI-HD, MemCard, 68010 14MHZ und 5MB RAM, A600 und CD32
Amiga User since 1987
Benutzeravatar
Goos
Entwickler-X
Beiträge: 291
Registriert: 27. September 2009 13:27
Wohnort: Neustadt i. Sa.
Danksagung erhalten: 8 Mal
Kontaktdaten:

Re: [Sammelthema] Software entwickeln für Amiga OS4

Beitrag von Goos »

turbo4.1 hat geschrieben: 30. Oktober 2022 14:09 muss man wirklich g++ angeben, geht es nicht auch mit gcc der compiler companien sollte doch automatisch das richtige fontend für die sprache aktivieren.
probiere es doch mal in der codebench mit dem aufruf des gcc.
versuch macht klug :-)
Ja der g++ linkt nur automatisch die stdc++ lib hinzu wenn man den gcc nimmt muss man das mit der option

Code: Alles auswählen

-lstdc++
selber vornehmen, wenn man die C++ Standardbibliothek nutzten möchte

Edit: ich sehe gerade auf den Codebench screenshots, da steht gcc++ da sollte aber entweder gcc oder g++ rein
Programmierer der EntwicklerX
ThorstenS
Beiträge: 310
Registriert: 24. Oktober 2014 15:51
Hat sich bedankt: 23 Mal
Danksagung erhalten: 5 Mal

Re: [Sammelthema] Software entwickeln für Amiga OS4

Beitrag von ThorstenS »

Goos hat geschrieben: 31. Oktober 2022 15:12
Edit: ich sehe gerade auf den Codebench screenshots, da steht gcc++ da sollte aber entweder gcc oder g++ rein
So sehen meine Einstellungen in CodeBench aktuell aus. Unter Compiler / Compiler Switches läßt sich dein Tipp mit athread=native nicht resetfest eintragen. Bedeutet, ich schreibe den Befehl in das Feld und klicke dann auf OK. Wechsel in nun den Reiter auf was anderes und Wechsel dann wieder zurück, ist das Feld Compiler Switches wieder leer.
008.png
009.png
010.png
011.png
Dadurch erstelle ich aktuell den Source in CodeBench und lasse dann über die Shell per Handeingabe kompilieren. Für das bißchen im Moment reicht es aus.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
ThorstenS
Beiträge: 310
Registriert: 24. Oktober 2014 15:51
Hat sich bedankt: 23 Mal
Danksagung erhalten: 5 Mal

Re: [Sammelthema] Software entwickeln für Amiga OS4

Beitrag von ThorstenS »

Kurzes Update:

Kompilieren von C++ Programmen funktioniert mit CodeBench.

In den Einstellungen unter - Targets - muss unter - Linker Switches - folgender Eintrag stehen:

-athread=native -lstdc++
ThorstenS
Beiträge: 310
Registriert: 24. Oktober 2014 15:51
Hat sich bedankt: 23 Mal
Danksagung erhalten: 5 Mal

Re: [Sammelthema] Software entwickeln für Amiga OS4

Beitrag von ThorstenS »

Ich verzweifele ich gerade ein wenig...

Habe die Webseite http://www.pjhutchison.org/tutorial/screens.html aufgerufen und versuche den Teil des Tutorials durchzuarbeiten, indem es um das - Öffnen eines Bildschirmes - geht. Habe den folgenden Code in CodeBench eingefügt:

Code: Alles auswählen

#include <proto/intuition.h>
#include <proto/dos.h>
#include <intuition/screens.h>

int main(void) {
    struct NewScreen Screen1 = {
     0,0,640,480,8,             /* Screen of 640 x 480 of depth 8 (2^8 = 256 colours)    */
     DETAILPEN, BLOCKPEN,
     HIRES,                     /* see graphics/view.h for view modes */
     PUBLICSCREEN,              /* Screen types */
     NULL,                      /* Text attributes (use defaults) */
     "My New Screen", 
     NULL,
     NULL
     };
     struct Screen *myScreen;
     myScreen = IIntuition->OpenScreen(&Screen1);  /* & (ampersand) means address of */
     IDOS->Delay(500);
     if (myScreen) IIntuition->CloseScreen(myScreen); /* Close screen using myScreen pointer */
	  return(0);
   } 
Laut der Webseite handelt es sich auch um einen Code für AmigaOS 4.

Trotz, dass der Code für OS4 ist, erhalte ich folgende Fehlermeldungen:
Linking Übungen
Window.cpp:5:4: error: stray '\240' in program
5 |  struct NewScreen Screen1 = {
| ^
Window.cpp:6:4: error: stray '\240' in program
6 |   0,0,640,480,8, /* Screen of 640 x 480 of depth 8 (2^8 = 256 colours) */
| ^
Window.cpp:6:5: error: stray '\240' in program
6 |   0,0,640,480,8, /* Screen of 640 x 480 of depth 8 (2^8 = 256 colours) */
| ^
Window.cpp:7:4: error: stray '\240' in program
7 |   DETAILPEN, BLOCKPEN,
| ^
Window.cpp:7:5: error: stray '\240' in program
7 |   DETAILPEN, BLOCKPEN,
| ^
Window.cpp:8:4: error: stray '\240' in program
8 |   HIRES, /* see graphics/view.h for view modes */
| ^
Window.cpp:8:5: error: stray '\240' in program
8 |   HIRES, /* see graphics/view.h for view modes */
| ^
Window.cpp:9:4: error: stray '\240' in program
9 |   PUBLICSCREEN, /* Screen types */
| ^
Window.cpp:9:5: error: stray '\240' in program
9 |   PUBLICSCREEN, /* Screen types */
| ^
Window.cpp:10:4: error: stray '\240' in program
10 |   NULL, /* Text attributes (use defaults) */
| ^
Window.cpp:10:5: error: stray '\240' in program
10 |   NULL, /* Text attributes (use defaults) */
| ^
Window.cpp:11:4: error: stray '\240' in program
11 |   "My New Screen",
| ^
Window.cpp:11:5: error: stray '\240' in program
11 |   "My New Screen",
| ^
Window.cpp:12:4: error: stray '\240' in program
12 |   NULL,
| ^
Window.cpp:12:5: error: stray '\240' in program
12 |   NULL,
| ^
Window.cpp:13:4: error: stray '\240' in program
13 |   NULL
| ^
Window.cpp:13:5: error: stray '\240' in program
13 |   NULL
| ^
Window.cpp:14:4: error: stray '\240' in program
14 |   };
| ^
Window.cpp:14:5: error: stray '\240' in program
14 |   };
| ^
Window.cpp:15:4: error: stray '\240' in program
15 |   struct Screen *myScreen;
| ^
Window.cpp:15:5: error: stray '\240' in program
15 |   struct Screen *myScreen;
| ^
Window.cpp:16:1: error: stray '\240' in program
16 |    myScreen = IIntuition->OpenScreen(&Screen1); /* & (ampersand) means address of */
| ^
Window.cpp:16:2: error: stray '\240' in program
16 |    myScreen = IIntuition->OpenScreen(&Screen1); /* & (ampersand) means address of */
| ^
Window.cpp:17:4: error: stray '\240' in program
17 |   IDOS->Delay(500);
| ^
Window.cpp:17:5: error: stray '\240' in program
17 |   IDOS->Delay(500);
| ^
Window.cpp:18:4: error: stray '\240' in program
18 |   if (myScreen) IIntuition->CloseScreen(myScreen); /* Close screen using myScreen pointer */
| ^
Window.cpp:18:5: error: stray '\240' in program
18 |   if (myScreen) IIntuition->CloseScreen(myScreen); /* Close screen using myScreen pointer */
| ^
Window.cpp: In function 'int main()':
Window.cpp:11:6: warning: ISO C++ forbids converting a string constant to 'STRPTR' {aka 'char*'} [-Wwrite-strings]
11 |   "My New Screen",
| ^~~~~~~~~~~~~~~
make: *** [Übungen] Error 1
Ich vermute, dass das noch Code für AmigaOS 4 und nicht 4.1 ist ?!?

Was der Fehler \240 weiß ich. Aber auch wenn ich das Zeichen entsprechend anpasse, erfolgt dennoch dieser Fehler im Output.

Auch den Zeiger (Pointer) auf den struct Namen (hier myScreen) zu setzen, hilft nicht.

Nach Umstellungen, habe ich auf nur noch zwei Fehler geschafft.

Ich schätze aber, dass das Problem ganz woanders liegt. Für heute reicht es mir aber...

Im os4depot habe ich mich ebenfalls mal "grob" nach Sourcen und Tutorials umgesehen. Aktuell aber nichts brauchbares gefunden.

Was ich benötige:

Entweder eine Webseite, auf der die Aufrufe bzw. der Code richtig wiedergegeben ist (für das aktuelle OS) oder ein Beispielsource eines Spiels. So kann ich dann im Quelltext bummeln gehen...
Benutzeravatar
TearsOfMe
Beiträge: 1202
Registriert: 29. Dezember 2013 19:27
Wohnort: Bad Marienberg
Hat sich bedankt: 28 Mal
Danksagung erhalten: 2 Mal

Re: [Sammelthema] Software entwickeln für Amiga OS4

Beitrag von TearsOfMe »

Kurz um Internet gesucht und das meint es sind:
"\240 is non-breaking space in iso8859-1 encoding, so the mystery is how those very special characters got in there."

Also da sind unsichtbare Zeichen beim copy/paste mitkopiert worden die den Fehler wohl auslösen.
Aber kann ja auch kein C, also nur geraten.
Vlt. schreibt noch ein Profi noch was dazu.

Edit:
Oh knapp zu spät, hast ja schon selbst gefunden :)
Still speaks the silence, it speaks in riddles to my mind
And time keeps passing by as I walk tearful through this life.
Tarja i miss you so much. Farewell my baby.
Benutzeravatar
Goos
Entwickler-X
Beiträge: 291
Registriert: 27. September 2009 13:27
Wohnort: Neustadt i. Sa.
Danksagung erhalten: 8 Mal
Kontaktdaten:

Re: [Sammelthema] Software entwickeln für Amiga OS4

Beitrag von Goos »

Ja das unsichtbare Zeichen \240 am Anfang der jeweiligen Zeile, sagt dem Browser, dass er da keinen Automatischen Zeilenumbruch machen darf, das versteht der Compiler natürlich nicht.
Programmierer der EntwicklerX
ThorstenS
Beiträge: 310
Registriert: 24. Oktober 2014 15:51
Hat sich bedankt: 23 Mal
Danksagung erhalten: 5 Mal

Re: [Sammelthema] Software entwickeln für Amiga OS4

Beitrag von ThorstenS »

Na also... geht doch:
004.png
005.png
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Antworten