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

amiga-news.de Forum > Programmierung > GCC <-> StormC [ - Suche - Neue Beiträge - Registrieren - Login - ]

-1- [ - Beitrag schreiben - ]

28.01.2004, 22:56 Uhr

JensB
Posts: 193
Nutzer
Hi,

ich habe versucht mein Tool von MOS nach AmigaOS zu bringen.Ich habe mein Quelltext genommen auf mein A4000T rübergeworfen und in StormC V4 als Project erstellt und alle Deteien eingefügt. Ich habe es ersrt mit der GCC version die bei StormC V4 bei ist versucht zu kompilieren , ergebnis = 270 Warnungen und 260 Fehler (soviel zeilen hat nicht mal der code) . Mit dem Hauseigenen Compiler von StormC erhalte ich nur 1 Fehlermeldung und 2 Warnungen (die 2 Warnungen bekomme ich in den griff) . Die Fehlermeldung : Idendiefi›"LocaleBase" redefined.
Ich habe es so deklariert :

#include <proto/locale.h> //Ich hab auch <pragmas/locale_pragmas.h> probiert
struct Library *LocaleBase;

(ups ich glaube ist alles ein bissel verschoben)

Unter MOS mit GCC hauts hin. Grübel !!!

Vieleicht ist es auch schon zu spät und ich hab nen Brett vorm Kopf !?

Mfg JensB

[ - Antworten - Zitieren - Direktlink - ]

29.01.2004, 01:50 Uhr

HelmutH
Posts: 150
Nutzer
Hi JensB
Falls Du da nicht weiter kommst, schreibe Dein Problem doch mal ins H&P Forum http://www.haage-partner.de/php/forum/viewforum.php?f=3.

Vieleicht kann Dir da jemand weiter helfen.;)

Gruß Helmut

[ - Antworten - Zitieren - Direktlink - ]

29.01.2004, 10:36 Uhr

cygnusEd
Posts: 104
Nutzer
Hallo,

Das Problem mit der Localebase ist leicht erklärt. In der Header-Datei
"proto/locale.h" steht folgendes:

#ifndef __NOLIBBASE__
extern struct LocaleBase * LocaleBase;
#endif /* __NOLIBBASE__ */

"__NOLIBBASE__" ist in der Regel nicht definiert, somit wird auch hier LocaleBase
deklariert. Setzt man also "#define __NOLIBBASE__" vor den Include ist alle o.k.

Das Proto-File ist auf jedem fall dem Pragma-File vorzuziehen.


Bei StormGCC hilft leider nichts außer den Code zu überarbeiten. Der Compiler
sehr streng. Oft sind aber nur wenige wirkliche Fehler vorhanden, die anderen
sind meist Folgefehler.

Gruß
CygnusEd

[ - Antworten - Zitieren - Direktlink - ]

29.01.2004, 11:58 Uhr

JensB
Posts: 193
Nutzer
Danke das mit der LocaleBase hat Funktioniert und wird bis auf 2 Warnungen(müssen noch raus) auch fertig Kompiliert aber nach dem Starten wirft mir jetzt der Debuger ein Fehler aus (auf deutsch: das programm ist abgestürtzt) das ganze aber schon beim öffnen der Libs.›
Ist es möglich mit dem Debuger zu sehen welche zeile das verursacht ?
Mit dem Debuger von E war es imer möglich warum nicht mit dem Teil von StormC ?

Mfg JensB

[ - Antworten - Zitieren - Direktlink - ]

29.01.2004, 18:14 Uhr

cygnusEd
Posts: 104
Nutzer

Hallo Jens,

Wenn Du alle Libraries "von Hand" öffnest, d.h. innerhalb Deines eigenen
Codes, sollte es kein Problem sein, jede einzelne Zeile zu debuggen.
Evtl. mußt Du die Debuggereinstellungen überprüfen, "Fat-Debugfile"
und "compile debugger friendly" sollte angewählt sein. Außerdem sollte
der Optimizer abgeschaltet sein.

Die Frage ist allerdings auch, auf welche Art die Libraries geöffnet werden.
Vielleicht macht ja das automatische Öffnen der Libs einen Strich durch
die Rechnung.

Gruß
CygnusEd

[ - Antworten - Zitieren - Direktlink - ]

30.01.2004, 12:40 Uhr

JensB
Posts: 193
Nutzer
Also ich öffne so die Libs (bsp. die Locale.Library) :

#include <libraries/locale.h>

#include <proto/locale.h>

int openlibs(void)
{
int retrn=FALSE;

if(!(LocaleBase = (struct Library*)OpenLibrary("locale.library",37))
{retrn=TRUE;} // hier stehen dann noch weitere libs ,"retrn" wird erst TRUE wenn alle libs erfolgreich geöffnet sind

return(retrn);
}


Ich hoffe ich habe es jetzt auch wieder richtig aus meinem Kopf ausgegraben ,hab hier auf Arbeit immer bloß 1-2min Zeit was zu schreiben !

Mfg JensB

[ - Antworten - Zitieren - Direktlink - ]

30.01.2004, 16:23 Uhr

cygnusEd
Posts: 104
Nutzer
Hi,

sieht soweit gut aus. Wenn dann noch LocalBase über "struct Library *LocaleBase;" deklariert
ist, kann eigendlich nichts schief gehen.
Schmiert das Programm direkt nach bei der ersten Library ab?

In solchen Fällen gehe ich meistens hin und lege mit dem Projekt-Assistenen ein leeres Projekt
an und probiere darin nur die problematische Stelle aus. Ein Blick in die Linker-Map hat mir da
schon oft weitergeholfen.
Sollte openlibs() immer noch Probleme machen, kannst Du ja die Linker-Map hier hineinsetzen.

Gruß
CygnusEd

[ - Antworten - Zitieren - Direktlink - ]

31.01.2004, 11:40 Uhr

JensB
Posts: 193
Nutzer
So i hab jetzt den Fehler !!! Ich habe auch am anfang die IntuiLib mit "struct IntuitionBase =NULL;" deklariert gehabt ! Nach dem Entfernen war alles OK !

Frage: Öffnen mus ich die für diese Programm trotzdem oder ???
Ich werde nochmal ganz wuschig hier in E brauchte ich das nicht mit der Intuitions.library (weder öffnen und schliessen )!

Mfg JensB

[ - Antworten - Zitieren - Direktlink - ]

31.01.2004, 13:59 Uhr

cygnusEd
Posts: 104
Nutzer

Hi,

brauchst Du bei StormC auch nicht. Einfach die Library-Base mit "extern"
deklarieren und die Library wird automatisch geöffnet und geschlossen :)
In der Dokumentation von StormC 4 sind alle Libraries aufgeführt, bei denen
das klappt.

Gruß
CygnusEd

[ - Antworten - Zitieren - Direktlink - ]


-1- [ - Beitrag schreiben - ]


amiga-news.de Forum > Programmierung > GCC <-> StormC [ - Suche - Neue Beiträge - Registrieren - Login - ]


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