msp430-gcc C++ globale Objekte

Gast #721108
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.
#721303
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 18 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.