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
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
eclipse ist nur eine IDE..die macht nix am code...wird an deinen compiler einstellungen liegen
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
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
"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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.