ENGLISH VERSION |
|
Links | | | Forum | | | Kommentare | | | News melden |
Chat | | | Umfragen | | | Newsticker | | | Archiv |
amiga-news.de Forum > Programmierung > C Kompiler? / SAS/C? | [ - Suche - Neue Beiträge - Registrieren - Login - ] |
-1- | [ - Beitrag schreiben - ] |
08.08.2001, 23:59 Uhr AgentR2 Posts: 52 Nutzer |
Hallo, ich suche einen C Kompiler. Ich habe auf der Amiga Developer CD 2.1 zwar den StormC 3.1 erhalten, aber sobald ich ein (bereits bestehndendes!) Programm damit kompilieren will und das Kompilierte Programm starte, stürzt es beim ersten zugriff auf die lowlevel.library ab. Das Original wurde mit SAS/C kompiliert, und zwar problemlos. Bekomme ich SAS/C noch irgendwo? Oder gibt es andere (kostenlose!) C-Kompiler für 68k Amiga? Zielplatofrm ist ein 68EC020 [ - Antworten - Zitieren - Direktlink - ] |
09.08.2001, 00:08 Uhr zacman Posts: 450 Nutzer |
vbcc 0.8 gcc 2.95.3 [ - Antworten - Zitieren - Direktlink - ] |
09.08.2001, 06:18 Uhr DJBase Posts: 3354 [Ex-Mitglied] |
Den SAS/C wirst Du leider nirgendwo mehr bekommen. Außer auf dem Gebrauchtmarkt. SAS hat die Amiga version eingestellt. -- Member of Amiga User Group 99 - http://www.aug99.com eMail - webmaster@djbase.de [ - Antworten - Zitieren - Direktlink - ] |
09.08.2001, 14:14 Uhr MagicSN Posts: 238 Nutzer |
Hallo! Ich tippe auf einen Bug im Source-Code oder was Compiler-Spezifisches (wird LowLevelBase mit oder ohne "extern" oder "static" deklariert ? Manche Compiler haben da verschiedene Konventionen). In Freespace verwende ich auch die lowlevel.library, und das tut tadellos (ist mit StormC 4 compiliert). Und auch in ZhaDoom, WarpSNES u.a. verwende ich lowlevel.library (allerdings sind neuere Versionen von WarpSNES mit gcc-WarpUP und nicht StormC compiliert, ich habe es aber frueher mit StormC compiliert, und funktionierte tadellos). Ich tippe daher auf nen Compiler-spezifischen Unterschied. Sollte mit nem Debugger zu finden sein (und StormC hat ja einen). Steffen [ - Antworten - Zitieren - Direktlink - ] |
09.08.2001, 20:55 Uhr AgentR2 Posts: 52 Nutzer |
Das hier ist der Original Source Code, läuft mit SAS/C einwandfrei. StormC will es so nicht kompilieren, da der Linker das Symbol "_LowLevelBase" nicht findet. ich habe unter den #include's folgendes eingefügt: struct Library *LowLevelBase = NULL; Damit wird es gelinkt, stürzt dann aber ab. Source Code: /* joypad.c check your joypad buttons in scripts by Daniel Balster. Example usage: joypad blue if warn echo "blue pressed" endif joypad fwd rew if warn echo "forward&rewind pressed" endif joypad play ; this could be in your s:startup-sequence ? if warn cd GAMES: GamesMenu endif joypad red green if warn GFX:3D-View endif (not much comments in it - forgive me) */ #include <exec/exec.h> #include <dos/dos.h> #include <libraries/lowlevel.h> #include <devices/cd.h> #include <proto/exec.h> #include <proto/dos.h> #include <proto/lowlevel.h> #define TEMPLATE "RED/S,BLUE/S,YELLOW/S,GREEN/S,FWD/S,REW/S,PLAY/S,PORT/N,QUIET/S" #define BUTTON_MASK (JPF_BUTTON_RED|JPF_BUTTON_BLUE|JPF_BUTTON_GREEN|JPF_BUTTON_YELLOW |JPF_BUTTON_FORWARD|JPF_BUTTON_REVERSE|JPF_BUTTON_PLAY) struct abc { ULONG red,blue,yellow,green,fwd,rew,play; ULONG port; ULONG quiet; ULONG pads[7]; /* someone said RDArgs must be sized to a 16-longs boundary ??? */ }; int main (void) { struct RDArgs *rdargs; struct abc args = {0}; ULONG bits, port=1, mymask; ULONG check = RETURN_OK; if (rdargs=ReadArgs(TEMPLATE,(LONG*)&(args),NULL)) { if(!args.quiet) PutStr("*** JoyPad Version 1.0.0 *** by Daniel Balstern"); if (args.port) port = *(ULONG*)args.port; bits = ReadJoyPort (port); if ((bits & JP_TYPE_MASK)==JP_TYPE_NOTAVAIL) PutStr ("port not availablen"); if ((bits & JP_TYPE_MASK)==JP_TYPE_UNKNOWN) PutStr ("controller type unknownn"); mymask = 0x00000000; /* create a bit-set comparison mask */ if (args.red) mymask |= JPF_BUTTON_RED; if (args.blue) mymask |= JPF_BUTTON_BLUE; if (args.green) mymask |= JPF_BUTTON_GREEN; if (args.yellow) mymask |= JPF_BUTTON_YELLOW; if (args.fwd) mymask |= JPF_BUTTON_FORWARD; if (args.rew) mymask |= JPF_BUTTON_REVERSE; if (args.play) mymask |= JPF_BUTTON_PLAY; /* compare two sets */ if ((bits&BUTTON_MASK) == mymask) check=RETURN_WARN; if (check && !args.quiet) PutStr ("button combination pressed!n"); FreeArgs(rdargs); } else PrintFault(IoErr(),0); return check; } [ - Antworten - Zitieren - Direktlink - ] |
09.08.2001, 22:14 Uhr ac-logic Posts: 91 Nutzer |
Du hast vergessen die library auch zu öffnen, es ist also kein Wunder, daß dein Programm beim Zugriff auf Funktionen der lowlevel.library abstürzt. [ Dieser Beitrag wurde von ac-logic am 09.08.2001 editiert. ] [ - Antworten - Zitieren - Direktlink - ] |
09.08.2001, 22:32 Uhr zacman Posts: 450 Nutzer |
Nicht wirklich. Wenn sein Compiler das automatische Oeffnen der Libraries kann, sollte es auch so funktionieren. [ - Antworten - Zitieren - Direktlink - ] |
10.08.2001, 01:28 Uhr Holger Posts: 8116 Nutzer |
Zitat:Aber da die Library-Base in der entsprechenden Link-Bibliothek nicht vorhanden ist, wird es beim auto-open nicht unterstützt (vereinfacht gesagt). Also muß man die Library entweder von Hand öffnen, oder auto-open für die lowlevel.library einrichten. mfg -- Good coders do not comment. What was hard to write should be hard to read too. [ - Antworten - Zitieren - Direktlink - ] |
-1- | [ - Beitrag schreiben - ] |
amiga-news.de Forum > Programmierung > C Kompiler? / SAS/C? | [ - Suche - Neue Beiträge - Registrieren - Login - ] |
Impressum |
Datenschutzerklärung |
Netiquette |
Werbung |
Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten. |