mikrocontroller.net

Forum: Compiler & IDEs Probleme mit gcc und c++


Autor: Christian M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
Ich hab mich entschlossen mein nächstes Avr Programm in C++ zuschreiben, 
da ich eigentlich aus der C++ Ecke komme und mich mit C noch nicht so 
richtig anfreunden konnte. Ich hab das Makefile auf C++ ausgerichtet und 
Visual Studio für das verwenden des Makefiles eingerichtet. Mitlerweile 
habe ich schon einige Klassen erstellt die Avr Standardfunktionen 
Kapseln und einige Testprogramme erstellt. Da ich abstrakte Basisklassen 
verwendet habe, habe ich jetzt ein Problem mit den vtables. Es wird mir 
einfach zuviel Ram verbraucht. Da bin Ich jetzt auf diese Seite 
gestoßen: http://ccrma.stanford.edu/planetccrma/man/man1/avr....
Dort habe ich die Option "-fvtable-gc" gefunden. Dabei werden nur 
Methoden die auch tatsächlich verwendet werden in die vtable 
aufgenommen. Also habe ich im Makefile unter "Compiler Options C++" 
folgendes hinzugefügt: "CPPFLAGS += -fvtable-gc" mit dem Ergebnis, dass 
sich nichts ändert. In der Ausgabe findet sich eine Zeile in der avr-gcc 
mit allen Optionen aufgerufen wird. Von "-fvtable-gc" fehlt aber jede 
Spur. Das selbe Problem hatte ich auch mit -S, als ich nur Assenbler 
Code ausgeben wolle.

Autor: Stefan Ernst (sternst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also hast du einen Fehler in deinem Makefile.

Autor: Christian M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das hab ich mir auch schon gedacht. Nur wo könnte der liegen??

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du wertest die Variable CPPFLAGS nich bei deinem gcc-Aufruf aus. 
Normalerweise heißen die auch CXXFLAGS.

Ohne, dass du das Makefile postest wird das aber mit der Hilfe 
schwer....

Autor: yalu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Christian M. (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hab das Makefile mal angehängt. Es wurde mit MFile erstellt. CXXFLAGS 
kann ich darin nicht finden.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
CPPFLAGS += -Wa,-adhlns=$(<:%.cpp=$(OBJDIR)/%.

Die Zeile sieht mir nach einem Klammerfehler aus..

Autor: Christian M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stimmt. Richtig muss es "CPPFLAGS += 
-Wa,-adhlns=$(<:%.cpp=$(OBJDIR)/%.lst)" heißen. Das Problem besteht aber 
weiterhin.

Autor: yalu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei mir gibt der Compiler die Meldung

  cc1plus: warning: switch ‘-fvtable-gc’ is no longer supported

aus. Du kannst ja mal nach den Gründen für den Rausschmiss dieser Option
suchen.

Autor: Christian M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
und was ist mit -S? Das ging ja auch nicht. Ich kanns ja noch mal mit 
paar anderen Optionen versuchen.

Autor: Christian M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab jetz verschiedene Optionen ausprobiert. Funktionieren alle 
nicht. Könntest du mal dein Makefile hochladen, damit ich es mal damit 
probieren kann?

Autor: Christian M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jetz gehts. Hab nochmal ein neues Makefile erstell und jetz gehts. 
Irgendetwas muss ich falsch gemacht haben. Allerdings bekomm ich die 
selbe Warnung wie du.

Hat eigentlich schon jemand eine Möglichkeit gefunden die vtables in den 
Rom zu packen?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.