www.mikrocontroller.net

Forum: Compiler & IDEs Eclipse Programmgrösse Frage


Autor: Karoly Kovacs (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Habe versucht gerade mit Eclipse zu experimentieren.

Mit Überraschung habe ich gesehen, dass die erstellte Programme viel 
grösser sind, als einfach mit avr-gcc erstellte.

Zum Beispiel:

1. Eclipse:
--------------------------------------
Program:   11404 bytes (34.8% Full)
(.text + .data + .bootloader)

Data:       1285 bytes (62.7% Full)
(.data + .bss + .noinit)

2. GCC:
--------------------------------------
Program:   10010 bytes (30.5% Full)
(.text + .data + .bootloader)

Data:       1029 bytes (50.2% Full)
(.data + .bss + .noinit)
--------------------------------------

Ich habe bereits "alles" versucht, habe die Einstellungen in Eclipse so 
gebastelt, dass die Compiler- u. Linkerswitches gleich sind.
(z.B. Optimisation, usw.)

Habt Ihr Ideen, was hier passiert?

Übrigens: das generierte Programm läuft ganz ordentlich, mich stört aber 
den Unterschied (was evtl. manchmal Speicherkritisch sein könnte).

Danke,
Karoly

Autor: Hans Mayer (hansilein)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Benutzt Eclipse denn die gleiche gcc-version?

Autor: Karoly Kovacs (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke, Hans, gute Idee, ich habe es geprüft, ja "mein" Eclipse verwendet 
die gleiche GCC Version.
(Zum Test, habe meinen "WinAVR" Folder umbenannt, dann funktioniert 
Eclipse gar nicht.)

Ich habe bereits wirklich alles probiert.

z.B.: Ich habe die Compiler u. Linker Switches aus dem Eclipse in meine 
GCC Befehle kopiert, und habe dann mit AVR GCC kompiliert. (Also 
umgekehrte Richtung.) Kein positives Ergebnis, sondern das gleiche 
Effekt. :(

Karoly

Autor: Andi ... (xaos)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
eclipse ist nur eine IDE..die macht nix am code...wird an deinen 
compiler einstellungen liegen

Autor: Karoly Kovacs (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke Andi, das war sehr hilfreich! :)))

Ehhhh! Das weiss ich genau.

(Habe sogar zweimal geschrieben, dass ich versucht habe, die gleiche 
Einstellungen zu nehmen.)

Karoly

Autor: Karoly Kovacs (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe es gefunden, weiss ich aber nicht, wie es man lösen kann.

Also, siehe:
WinAVR/doc/avr-libc/avr-libc-user-manual/FAQ.html#faq_libm

Hier steht:
"Typically, system libraries like libm.a are given to the final C 
compiler command line that performs the linking step by adding a flag 
-lm at the end."

Schlüsselwort ist: "at the end".

Wenn man aber in Eclipse die "-lm" option bei "Linker properties/Other 
arguments" einstellt, bekommt man die folgende Linker-Befehlszeile:
"avr-gcc -Wl,-Map,futes.map -lm -mmcu=atmega32"

Also, "-lm" steht nicht am Ende!!!

Die einzige Lósung wäre - meiner Meinung nach -, in Eclipse externe 
Makefile einzustellen.

Oder?

Karoly

Autor: Thomas Holland (innot)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Other arguments" ist die falsche Stelle für Libraries. Benutz statt 
dessen "Linker properties -> Libraries" und füg bei "Libraries (-l)" ein 
"m" dazu, dann steht das '-lm' am Ende.

Autor: Karoly Kovacs (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Super! Es funktioniert!

Danke,
Karoly

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.