mikrocontroller.net

Forum: Compiler & IDEs Arduino Fehlermeldung doppelte Lib


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 Philippe B. (philippe27)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Durch einen neuen Computer bemerkte ich ein Fehler in meiner Arduino 
Programmierung.

Und zwar nutze ich für ein GLCD die UTFT Libary, welche ich in meinem 
Sketch mit #include einbinde.
Soweit so gut.
UTFT Libary: http://www.rinkydinkelectronics.com/library.php?id=51

Beim neuen Computer motzt Arduino mit folgender Meldung: (Auszug der 
Error Meldung)
C:\Users\p-bra\AppData\Local\Temp\arduino_build_586288\libraries\UTFT\DefaultFonts.c.o (symbol from plugin): In function `SevenSegNumFont':

(.text+0x0): multiple definition of `BigFont'

C:\Users\p-bra\AppData\Local\Temp\arduino_build_586288\libraries\UTFT\BigFont.c.o (symbol from plugin):(.text+0x0): first defined here

c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.9.2/../../../../avr/bin/ld.exe: Disabling relaxation: it will not work with multiple definitions

C:\Users\p-bra\AppData\Local\Temp\arduino_build_586288\libraries\UTFT\SevenSegNumFont.c.o (symbol from plugin): In function `SevenSegNumFont':

(.text+0x0): multiple definition of `SevenSegNumFont'

C:\Users\p-bra\AppData\Local\Temp\arduino_build_586288\libraries\UTFT\DefaultFonts.c.o (symbol from plugin):(.text+0x0): first defined here

C:\Users\p-bra\AppData\Local\Temp\arduino_build_586288\libraries\UTFT\SmallFont.c.o (symbol from plugin): In function `SmallFont':

(.text+0x0): multiple definition of `SmallFont'

C:\Users\p-bra\AppData\Local\Temp\arduino_build_586288\libraries\UTFT\DefaultFonts.c.o (symbol from plugin):(.text+0x0): first defined here

collect2.exe: error: ld returned 1 exit status

Ich finde nur nicht die Ursache für die angeblichen mehrfachen 
Definitionen der einzelnen Funktionen.

Kann mir jemand sagen weshalb es im \temp Ordner Duplikate anlegt?
Mein Code inkl. aller verwendeten Lib's habe ich als .zip angehängt.

Danke und Gruss
Philippe

von S. R. (svenska)


Bewertung
0 lesenswert
nicht lesenswert
Hast du die Arrays möglicherweise in einer Headerdatei angelegt und 
diese Datei mehrfach eingebunden?

von Philippe B. (philippe27)


Bewertung
0 lesenswert
nicht lesenswert
S. R. schrieb:
> Hast du die Arrays möglicherweise in einer Headerdatei angelegt und
> diese Datei mehrfach eingebunden?

Nein, nicht das ich wüsste.

Ich selbst habe nur den Arduino Sktech mit 4 c-Bilddateien geschrieben.
Alles weitere wird via Libary eingebunden.


Wenn ich die UTFT.h in meinem Sketch auskommentiere, erhalte ich zwar 
die Fehlermeldungen nicht mehr.
Dafür aber die Fehlermeldung das die nachfolgenden GLCD Befehle 
unbekannt sind, was ja auch logisch ist da es in dieser Libary vorhanden 
ist.


Mich wundert es nur das bei meinem alten Computer nie solch eine Meldung 
kam und ich dort den gesamten Sketch wie in der .zip Datei fehlerfrei 
kompilieren konnte.
Zwischenzeitlich habe ich auch einmal Arduino 1.8.6 heruntergeladen, 
welche auf meinem alten Computer lief, aber keine Änderung.

Ich würde mich über jeden Hinweis freuen.

von S. R. (svenska)


Bewertung
0 lesenswert
nicht lesenswert
Aus irgendeinem Grund werden die Arrays mehrfach angelegt. Das kann - 
wie gesagt - eine mehrmals eingebundene Headerdatei sein, oder aber die 
entsprechende C-Datei wird vom Linker mehrfach gelinkt.

Schau dir mal die genaue Compiler-Befehlszeile an. Wenn es keine 
fehlerhaften Includes sind, dann tippe ich darauf, dass eine Datei 
mehrfach gelistet ist.

von Thomas B. (ewi)


Bewertung
0 lesenswert
nicht lesenswert
Im UTFT Verzeichnis befindet sich die Datei DefaultFonts.c. In dieser 
Datei werden der BigFont, der SmallFont und ein SevenSegNumFont 
definiert. Im selben Verzeichnis sind aber auch die Dateien BigFont.c, 
SmallFont.c und SevenSegNumFont.c enthalten, die diese Fonts 
namensgleich definieren. Die Fehlermeldung mit den doppelten 
Definitionen ist also völlig korrekt. Damit das klappt, muss entweder 
die Datei DefaultFonts.c aus dem UTFT Verzeichnis entfernt werden oder 
die Dateien BigFont.c, SmallFont.c und SevenSegNumFont.c müssen entfernt 
werden.

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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.