Moin,
ich bin gerade dabei mich an der Programmierung eines Arduinos zu
versuchen. Ich wollte ein Beispielprogramm fürs Nextion LCD aufspielen,
bekomme beim Komilieren allerdings immer die Fehlermeldung, dass das
dazugehörige headerfile nicht gefunden wurde. Das Headerfile und alle
anderen Bibliotheken, auf die in dem Header-File eingebunden sind,
liegen im selben Ordner, wie das ino-file. Trotzdem bekomme ich die
Fehlermeldung. WAs mache ich an diesem Punkt falsch?
hier der Code:
ich habe jetzt mal alle zusätzlichen cpp und h-files in den unterordner
libraries im ordner des ino files abgelegt. Ich erhalte nun folgende
Fehlermeldung:
CompButton.cpp.o: In function `b0PopCallback(void*)':
C:\Program Files (x86)\Arduino/CompButton.ino:38: undefined reference to
`NexButton::getText(char*, unsigned int)'
C:\Program Files (x86)\Arduino/CompButton.ino:46: undefined reference to
`NexButton::setText(char const*)'
CompButton.cpp.o: In function `setup':
C:\Program Files (x86)\Arduino/CompButton.ino:51: undefined reference to
`nexInit()'
C:\Program Files (x86)\Arduino/CompButton.ino:52: undefined reference to
`NexTouch::attachPop(void (*)(void*), void*)'
CompButton.cpp.o: In function `loop':
C:\Program Files (x86)\Arduino/CompButton.ino:58: undefined reference to
`nexLoop(NexTouch**)'
CompButton.cpp.o: In function
`__static_initialization_and_destruction_0':
C:\Program Files (x86)\Arduino/CompButton.ino:19: undefined reference to
`NexButton::NexButton(unsigned char, unsigned char, char const*)'
collect2.exe: error: ld returned 1 exit status
Fehler beim Kompilieren.
Hallo,
im Sketchordner im Ordner libraries liegen die Ordner von hinzugefügten
Libraries.
Wenn man da von Hand reinkopiert: Ordner anlegen, der genauso heißt wie
die Lib, also das .h bzw. .cpp-File.
Da gehören dann dies Files rein, meist ist noch ein keywords.txt dabei.
Ein Example-Ordner gehört so wie er ist in den Ordner.
Besser ist es, eine neue Lib direkt aus dem .zip zu installieren,
Sketch->Bibliothek einbinden->.ZIP-Bibliothek hinzufügen.
Wenn das angemeckert wird dann das Archiv entpacken und den Ordner mit
dem Biliotheksnamen in den Sketchordner nach libraries kopieren.
Ordnernamen prüfen! Manchmal heißt der ORder hinten -master, daß muß
dann entfernt werden.
Nicht wahllos was in irgendwelche ORdner packen, ds ist fast das
Einzige, womit man sich die IDE ziemlich zerlegen kann...
Gruß aus Berlin
Michael
Marco G. schrieb:> Das Headerfile und alle anderen Bibliotheken, auf die in dem Header-File> eingebunden sind, liegen im selben Ordner, wie das ino-file.
Was haben die Bibiotheken da zu suchen?
Sortiere erstmal deinen File-Salat und sorge dafür, dass die
erforderlichen Bibliothen sauber eingebunden sind. Lass das die IDE
machen und pfusche ihr nicht ins Handwerk.
Michael U. schrieb:> Wenn das angemeckert wird dann das Archiv entpacken und den Ordner mit> dem Biliotheksnamen in den Sketchordner nach libraries kopieren.> Ordnernamen prüfen! Manchmal heißt der ORder hinten -master, daß muß> dann entfernt werden.
Genau so habe ich das gemacht. In den Sketch-Ordner, in der die
Ino-Datei liegt einen ordner mit den Namen libraries eingefügt und in
den alle Header und cpp-Dateien kopiert. Da erscheint die vorher
angegebene Fehlermeldung.
Wenn ich die Dateien aus dem originalenZIP-Archiv per Dialog nstalliere
passiert nichts. Keine erfolgs noch Fehlermeldung.
Marco G. schrieb:> Genau so habe ich das gemacht. In den Sketch-Ordner, in der die> Ino-Datei liegt einen ordner mit den Namen libraries eingefügt und in> den alle Header und cpp-Dateien kopiert.
Da gehören die Dateien aber nicht hin. Es muss als Unterordner von
libraries einen Ordner mit dem Bibliotheksnamen geben und genau in
diesen Unterordner gehören die Dateien. Außerdem gibt es darunter meist
noch einen Unterordner examples. Lass die Ordnerstruktur so, wie sie
im Zip-File verpackt ist. Und libraries ist kein Unterordner von einem
bestimmten Sketch-Ordner.
Hallo,
habe mal die Lib von GitHUB runtergeladen. Wird aus dem ZIP problemlos
installiert, die Rückmeldung an die IDE haben die Jungs wohl vergessen.
Liegt dann ordentlich als ITEADLIB_Arduino_Nextion-master in
"Sketchbook"/libraries.
In den Beispielen in der IDE taucht sie auch mit allen Bespielen auf.
Das Ding scheint mindestens einen Arduino mit 2 seriellen zu erfordern,
zumindest compiliert das CompPicture-Beispiel erst für einen Mega2560,
sonst vermisst es Serial2.
Welchen Arduino benutzt Du?
Gruß aus Berlin
Michael
Ok, ich habe das jetzt mal per Zip-File als Bibliothek eingefügt. Sie
taucht auch auf. Ich habe jetzt mal ein neues Projekt angelegt und über
die Bibliotheks-einfügefunktion eingefügt. Die Header werden auch alle
aufgeführt. Beim Kompilieren kommen die geleichen Fehlermeldungen wie
bisher.
Arduino hat unter Dokumente/arduino den Ordner libraries erstellt und da
dann einfach den Inhalt des Zipfiles hineinkopiert.
Ok, daran könnte es liegen, ich habe nur einen Uno. Was müsste ich
ändern, um es darauf zum Laufen zu bekommen?
Hallo,
CompButton compiliert hier für den Mega2560 auch ohne Fehler.
Ich habe weder das Display noch einen Mega2560 zur Hand um da mehr sagen
zu können.
Gruß aus Berlin
Michael
Marco G. schrieb:> Ok, daran könnte es liegen, ich habe nur einen Uno.
Dann stell erstmal fest, ob dein Zeugs jetzt alles richtig liegt. Wähle
den richtigen Arduino und guck, ob es sauber durch den Compiler geht.
Dann kann man weiter sehen.
Ich habe jetzt auf github gefunden, wie man das auf es auf nur eine
serielle Schnittstelle umstellen kann. Das werde ich jetzt erstmal
versuchen.
Update: Ich habe wie beschrieben den Debug-Port deaktiviert und den
eigentlichen Communikationsport auf Serial gelegt. Trotzdem liefert der
Kompiler immer noch dieselebn fehlermeldungen