Forum: Mikrocontroller und Digitale Elektronik Warum spuckt die IDE einen Fehler beim kompilieren aus?


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Fabian W. (prog_fab)


Bewertung
0 lesenswert
nicht lesenswert
Moin Moin,

ich möchte den Wert eines DS18B20 Temperatursensors auf meinem OLED 
Display ausgeben lassen, allerdings ist die IDE andauernd am meckern und 
ich verstehe es einfach nicht... Wäre cool, wenn mir da jemand helfen 
könnte. Bin halt relativ neu auf dem Gebiet und dementsprechend noch 
nicht so fit. Bei den Fehlermeldungen habe ich einfach nur meinen echten 
Namen rausgelöscht. Datenschutz undso ;)

Hier mein Code:
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SH1106.h>
#include <OneWire.h>
#include <DallasTemperature.h>

#define OLED_RESET 4
Adafruit_SH1106 display(OLED_RESET);

#define ONE_WIRE_BUS 2

OneWire ourWire(ONE_WIRE_BUS);
DallasTemperature sensors(&ourWire);

void setup()   {                

  //I2C Adresse Initialisieren
  display.begin(SH1106_SWITCHCAPVCC, 0x3C);
  
  //Dallas Library Initialisieren
  sensors.begin();
}

#define DRAW_DELAY 118
#define D_NUM 47

void loop(){
  sensors.requestTemperatures(); //Temperatur abfragen
  
  display.clearDisplay();
  
  display.setTextColor(WHITE); // Textfarbe setzen
  
  display.setTextSize(2.5); // Textgroesse setzen
  
  display.setCursor(1,1); // Textstartposition einstellen
  display.println("Oil:"); // Text anzeigen
  display.setCursor(1,20);
  display.println(sensors.getTempCByIndex(0) );
  
  display.setCursor(1,49);
  display.println("Water:");
  
  display.setCursor(1,25);
  display.println("OilP.:");
  
  display.display();
  delay(8000);
  display.clearDisplay();

}


Hier die Fehlermeldungen:

Arduino: 1.8.5 (Windows 7), Board: "Arduino/Genuino Uno"

In file included from 
C:\Users\Desktop\Arduino\Projekte\Backups\Basisprogramm OLED Oil, OilP, 
Water\sketch_may21a\sketch_may21a_BACKUP.ino:5:0:

C:\Users\Documents\Arduino\libraries\Adafruit_SH1106-master/Adafruit_SH1 
106.h:141:7:  error: redefinition of 'class Adafruit_SH1106'

 class Adafruit_SH1106 : public Adafruit_GFX {

       ^

In file included from 
C:\Users\Desktop\Arduino\Projekte\Backups\Basisprogramm OLED Oil, OilP, 
Water\sketch_may21a\sketch_may21a.ino:5:0:

C:\Users\Documents\Arduino\libraries\Adafruit_SH1106-master/Adafruit_SH1 
106.h:141:7:  error: previous definition of 'class Adafruit_SH1106'

 class Adafruit_SH1106 : public Adafruit_GFX {

       ^

C:\Users\Desktop\Arduino\Projekte\Backups\Basisprogramm OLED Oil, OilP, 
Water\sketch_may21a\sketch_may21a_BACKUP.ino:8:24: error: redefinition 
of 'Adafruit_SH1106 display'

 Adafruit_SH1106 display(OLED_RESET);

                        ^

C:\Users\Desktop\Arduino\Projekte\Backups\Basisprogramm OLED Oil, OilP, 
Water\sketch_may21a\sketch_may21a.ino:10:17: note: 'Adafruit_SH1106 
display' previously declared here

 Adafruit_SH1106 display(OLED_RESET);

                 ^

C:\Users\Desktop\Arduino\Projekte\Backups\Basisprogramm OLED Oil, OilP, 
Water\sketch_may21a\sketch_may21a_BACKUP.ino: In function 'void 
setup()':

C:\Users\Desktop\Arduino\Projekte\Backups\Basisprogramm OLED Oil, OilP, 
Water\sketch_may21a\sketch_may21a_BACKUP.ino:10:6: error: redefinition 
of 'void setup()'

 void setup()   {

      ^

C:\Users\Desktop\Arduino\Projekte\Backups\Basisprogramm OLED Oil, OilP, 
Water\sketch_may21a\sketch_may21a.ino:17:6: note: 'void setup()' 
previously defined here

 void setup()   {

      ^

C:\Users\Desktop\Arduino\Projekte\Backups\Basisprogramm OLED Oil, OilP, 
Water\sketch_may21a\sketch_may21a_BACKUP.ino: In function 'void loop()':

C:\Users\Desktop\Arduino\Projekte\Backups\Basisprogramm OLED Oil, OilP, 
Water\sketch_may21a\sketch_may21a_BACKUP.ino:24:6: error: redefinition 
of 'void loop()'

 void loop() {

      ^

C:\Users\Desktop\Arduino\Projekte\Backups\Basisprogramm OLED Oil, OilP, 
Water\sketch_may21a\sketch_may21a.ino:29:6: note: 'void loop()' 
previously defined here

 void loop(){

      ^

exit status 1
Fehler beim Kompilieren für das Board Arduino/Genuino Uno.

: Verschoben durch Moderator
von Sven B. (scummos)


Bewertung
0 lesenswert
nicht lesenswert
Sieht aus, als würde dem genannten Header ein Include-Guard fehlen (das 
#ifndef FOO_H #define FOO_H ... #endif).

von W.S. (Gast)


Bewertung
1 lesenswert
nicht lesenswert
Fabian W. schrieb:
> allerdings ist die IDE andauernd am meckern und
> ich verstehe es einfach nicht...

Kannst du lesen? Insbesondere das:
"error: redefinition of 'class Adafruit_SH1106'"

Das ist doch einfach zu lesen und zu verstehen: du hast 
"Adafruit_SH1106" zweimal in verschiedenen Quelldateien definiert. 
Nämlich in:

a) sketch_may21a_BACKUP.ino
und
b) Adafruit_SH1106.h

So, jetzt überlege dir erstmal, was denn davon eigentlich der Mumpitz 
ist.

W.S.

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.