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


von Christian M. (Gast)


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-g++.1.html.
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.

von Stefan E. (sternst)


Lesenswert?

Also hast du einen Fehler in deinem Makefile.

von Christian M. (Gast)


Lesenswert?

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

von Gast (Gast)


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....

von yalu (Gast)


Lesenswert?


von Christian M. (Gast)


Angehängte Dateien:

Lesenswert?

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

von Gast (Gast)


Lesenswert?

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

Die Zeile sieht mir nach einem Klammerfehler aus..

von Christian M. (Gast)


Lesenswert?

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

von yalu (Gast)


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.

von Christian M. (Gast)


Lesenswert?

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

von Christian M. (Gast)


Lesenswert?

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

von Christian M. (Gast)


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?

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.