Forum: Compiler & IDEs msp430-gcc C++ globale Objekte


von Maddin (Gast)


Lesenswert?

Hallo.
Ich habe ein Problem: Ich kann keine globalen Objekte von Klassen 
erstellen. Zwar meckert der Compiler/Linker nicht, aber das ausfuehren 
von Methoden globaler Objekte fuehrt zum Absturz. Ich vermute, dass die 
Konstruktoren der Objekte in der Startup-Routine nicht ausgefuehrt 
werden. Der Code an sich ist in Ordnung, lokale erstellte Objekte 
funktionieren einwandfrei.

Ich benutzte das aktuelle Windows Package vom mspgcc.

Hat sich hier schonmal jemand an C++ mit dem mspgcc gewagt, und ist auf 
gleiche Probleme gestossen, bzw. wenn es diese Probleme nicht gab, 
welche mspgcc Version wurde benutzt?

Danke im Vorraus.

von Oliver (Gast)


Lesenswert?


von Uhu U. (uhu)


Lesenswert?

Wie gcc das löst, weiß ich nicht. Andere Compiler (MSC, Borland) legen 
üblicherweise einen Funktionspointervektor an, dessen Pointer von der 
Runtime-Initialisierungsroutine der Reihe nach aufgerufen werden. Der 
Prozeß endet, wenn ein NULL-Pointer gefunden wird. (Für die globalen 
Destruktoren funktioniert es genauso, nachdem main terminiert hat.)

Wenn keine Runtime-Initialisierung vom Linker zum Programm gebunden 
wird, werden diese Initialisierungen nicht ausgeführt.

Die Runtime-Initialisierungsroutine wird vor main ausgeführt.

Notfalls mußt du eben mal den Objektcode untersuchen und dir selbst 
sowas schreiben.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.