Arduino-C: undefined reference to `readArms()'
Beim kompilieren einige Arduino-C-Datei erhalte ich die Fehlermeldung "undefined reference to `readArms()'"
Den code finden Sie auf paste bin.
Aber im Grunde, was passiert ist:
In der INO Datei, die ich benutze:
readArms();
Erklärt in "armfunctions.h" und "armfunctions.c"
Den .h-Datei enthält
void readArms(void);
Und die .c-Datei :
void readArms(void){
float motor1 = 0.0;
int motor = 0;
motor = analogRead(READMOTOR1);
motor1 = (float)motor;
motor1 = (motor1 - 87.0) * (400.0/(1007.0-87.0));
delay(1000);
}
- Did you pass
"armfunctions.c"
an den compiler ? - Ja, alle diese Dateien Alter in den gleichen Ordner, und alle von Ihnen erscheinen in der arduino-SDK, wenn ich öffnen Sie die .INO Datei
- Ändern armfunctions.c armfunctions.cpp das problem
- Dann setzen Sie diesen Kommentar in eine Antwort, so dass andere können es deutlich sehen, und profitieren Sie als gut.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich habe die Erforschung dieser für Stunden heute, Herstellung und Erprobung verschiedener Skizzen und gefunden haben (wie Sie bereits gefunden habe) ändern Sie
.cpp
ist ein workaround, aber wenn Sie wollen, um speziell erstellen Sie eine c-Datei, müssen Sie wickeln Sie die Prototypen in die header zu Holen, um zu kompilieren. Es gibt ein paar gute Beiträge dazu, aber der Kern des Problems, in Ihren.h
Datei setzen:Verwenden Sie das folgende in Ihre .C-Datei:
void armfunctions::readArms(void)... (der Teil vor dem :: ist Ihr classname in Ihr .h-Datei)
c
ist eine C-Quellcode Datei-Erweiterung, kein C++. Namespaces und Klassen gibt es nicht in C. Schreiben von C++ - code in eine C-Datei ist nicht eine gültige Lösung.