2017-10-03 1 views
2

Ich bin sehr neu in Arduino, also vielleicht meine Frage wird dumm sein, aber ich muss es fragen!Keine solche Datei oder Verzeichnis in Arduino Projekt

Ich habe einen mqtt Client für meine nodeMcu Chip, und ich habe diesen Fehler

/Users/mikevorisis/Downloads/pubsubclient-master/examples/mqtt_esp8266/mqtt_esp8266.ino:27:26: fatal error: PubSubClient.h: No such file or directory #include

ich das Original project von Github heruntergeladen und ich versuchte, das Beispiel es in examples/mqtt_esp8266 hat zu kompilieren, aber wieder ich Dasselbe Problem.

Ich habe auch versucht, PubSubClient.h in den gleichen Ordner zu legen, aber wieder habe ich das gleiche Problem.

Irgendwelche Ideen? Vielen Dank im Voraus.

Antwort

1

Die Datei, die Sie heruntergeladen und in Ihr Projekt aufgenommen haben, ist wahrscheinlich keine Header-Datei. Wahrscheinlich haben Sie den Inhalt von github kopiert und in ein Textdokument eingefügt, das Sie als Textdatei mit der Erweiterung ".h" gespeichert haben.

Es hat jetzt die Erweiterung "filename.h.txt". Der Name und die Erweiterung müssen nur "Dateiname.h" sein. Verwenden Sie Speichern unter, und wählen Sie beim Speichern "Alle Dateien" aus, und nennen Sie es "Dateiname.h". Vergessen Sie nicht, den Dateinamen erneut einzugeben, oder er kann automatisch mit der bereits vorhandenen Datei "Dateiname.h.txt" gefüllt werden (auch wenn Sie sie nicht sehen!).

Wenn die Datei jetzt die richtige Erweiterung hat, legen Sie sie in den gleichen Ordner wie Ihre Quellcodedatei. Sie können sehen, in welchem ​​Verzeichnis sich Ihre Quelldatei befindet, indem Sie in Ihrer IDE "Speichern unter" wählen.


Ein Problem, auf das Sie stoßen könnten, nachdem Definitionen fehlen. Sie sehen, wenn Sie Bibliotheken in Form von Header-Dateien verwenden, muss jede Header-Datei in der Regel (in diesem Fall, ja) durch eine CPP-Datei (nicht unbedingt mit dem gleichen Namen) begleitet werden. Der Grund hierfür ist, dass die Header-Datei Deklarationen enthält und die cpp-Datei die Definitionen für diese Deklarationen enthält. Mit anderen Worten, die Header-Datei ist eine Übersicht über die in der Bibliothek verfügbaren Einrichtungen, und die cpp-Datei implementiert tatsächlich die Innereien davon.


Edit: Das Beispiel, das Sie versuchen auch zu laufen hat #include <ESP8266WiFi.h>, eine Datei, die nicht im Github-Repository, das Sie genannt. Ich nehme an, dass dies eine Bibliothek für ein WiFi-Modul oder so ist, dass Sie woanders hinkommen können (Hersteller, andere git's oder vielleicht kommt es mit der Arduino IDE?). Mit anderen Worten, Sie müssen auch die Header- und (wahrscheinlich) .cpp-Datei zu Ihrem Quellverzeichnis hinzufügen.

+0

Hallo Tellus Dank für Ihre Antwort, überprüfte ich die Erweiterung und die .h (I auch, wie Sie umbenannt sagte), aber nichts geändert. Ich lege sie auch in den gleichen Ordner. Ich versuche tatsächlich, das Beispiel aus dem Repo in GitHub auszuführen. Wenn Sie also die Zeit haben, es zu überprüfen, sehen Sie den Fehler. –

+0

Haben Sie auch die .cpp-Datei für den Header erhalten und haben Sie sie im selben Verzeichnis wie die Header-Datei und die Quelle? – Tellus

+0

ja ich habe sie im selben Ordner .. Ich werde überprüfen, ob ich sie in den gleichen Ordner wie espwifi wird den Trick tun –

Verwandte Themen