www.mikrocontroller.net

Forum: Compiler & IDEs Compiler optimizations disabled


Autor: Newbie ..... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Build started 8.7.2007 at 13:58:58
avr-gcc.exe  -mmcu=atmega8 -Wall -gdwarf-2 -DF_CPU=3686400UL -O0 
-fsigned-char -MD -MP -MT lcd-routines.o -MF dep/lcd-routines.o.d  -c 
../lcd-routines.c
In file included from ../lcd-routines.c:2:
c:/winavr-20070525/bin/../avr/include/util/delay.h:89:3: warning: 
#warning
"Compiler optimizations disabled; functions from <util/delay.h> won't work as designed"
../lcd-routines.c:124:1: warning: "DELAY50US" redefined
../lcd-routines.c:8:1: warning: this is the location of the previous 
definition
../lcd-routines.c:142: error: redefinition of 'lcd_data'
../lcd-routines.c:17: error: previous definition of 'lcd_data' was here
../lcd-routines.c:162: error: redefinition of 'lcd_command'
../lcd-routines.c:35: error: previous definition of 'lcd_command' was 
here
../lcd-routines.c:181: error: redefinition of 'lcd_enable'
../lcd-routines.c:52: error: previous definition of 'lcd_enable' was 
here
../lcd-routines.c: In function 'lcd_enable':
../lcd-routines.c:182: error: 'LCD_EN' undeclared (first use in this 
function)
../lcd-routines.c:182: error: (Each undeclared identifier is reported 
only once
../lcd-routines.c:182: error: for each function it appears in.)
../lcd-routines.c: At top level:
../lcd-routines.c:193: error: redefinition of 'lcd_init'
../lcd-routines.c:64: error: previous definition of 'lcd_init' was here
../lcd-routines.c:228: error: redefinition of 'lcd_clear'
../lcd-routines.c:98: error: previous definition of 'lcd_clear' was here
../lcd-routines.c:235: error: redefinition of 'lcd_home'
../lcd-routines.c:105: error: previous definition of 'lcd_home' was here
make: *** [lcd-routines.o] Error 1
Build failed with 15 errors and 3 warnings...

Wie kann ich diese Optimierung einschalten?

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alles andere als -O0 hilft dir weiter. Üblich ist -Os.

Autor: Newbie ..... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OK, jetzt ist zwar "Compiler optimizations disabled; functions from 
<util/delay.h> won't work as designed" weg, aber der Rest ist 
gleichgeblieben.

Was mache ich für einen Fehler?

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Newbie ..... wrote:
> OK, jetzt ist zwar "Compiler optimizations disabled; functions from
> <util/delay.h> won't work as designed" weg, aber der Rest ist
> gleichgeblieben.
>
> Was mache ich für einen Fehler?
Du glaubst, Du machst nur einen Fehler? Dein erster Fehler ist schon 
mal, dass Du denkst, die Leute hier im Forum hätten hellseherische 
Fähigkeiten und könnten aus einer Latte Fehlermeldungen das Programm 
rekonstruieren. Der zweite Fehler ist, dass Du wahrscheinlich eine ganze 
Menge Syntaxfehler bei Funktionsaufrufen machst. Der dritte Fehler ist, 
dass Du einen undefiniertes Symbol mit der Bezeichnung LCD_EN 
verwendest....

Autor: Newbie ..... (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
1. sorry hab jetzt erst gesehen das der Anhang nicht funktioniert hat
   wenn der Anhang wieder nicht geht kann ich den code eh nur posten.

2. Das kann schon sein, da ich einfach mal die lcd-routine vom 
LCD-tutorial
   kopiert hab zum testen meines lcd.

3. LCD_EN ist glaub ich die bezeichnung für den enable-pin also pin 3

tut mir leid ich wollt euch echt nicht ärgern mit meinem tread :(

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bist Du sicher, dass der Compiler von der Datei lcd_routines.c weiß? Das 
sieht mir nämlich fast so aus, als ob Du die gar nicht im Makefile 
angegeben hast und der Compiler deshalb die Definitionen der ganzen 
Funktionen nicht kennt. Es reicht nicht, nur die Headerdatei 
einzubinden. Die .c-Datei muss im Makefile bei den Sources angegeben 
werden!

> tut mir leid ich wollt euch echt nicht ärgern mit meinem tread :(
Das hier heißt "thread". "tread" ist was anderes...

Autor: Newbie ..... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Die .c-Datei muss im Makefile bei den Sources angegeben
werden!"

die Dateien lcd-routines.c und lcd-routines.h hab icm im avr studio bei 
source-files und header-files eingefügt.

Oder meinst du mit Makefile was anderes?

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hatte grad nicht gesehen, dass die Fehlermeldungen alle aus der 
lcd_routines.c stammen... Was hast Du mit der lcd_routines.c gemacht? 
Das sieht fast so aus, als hättest Du die ganze Datei kopiert und unten 
noch mal drangehängt! Dann ist klar, dass der Compiler bei allen 
Funktionen meckert. Die sind ja auch alle zweimal definiert. Das geht so 
nicht.

Autor: Newbie ..... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
BOOAAH!! Hab ich wohl aus Versehen 2x in den editor kopiert ;)

Es geht jetzt. Juhu :) , 1000dank

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.