Ich mache eine Bibliothek für eine bestimmte Platine für die Arduino IDE. Die Bibliothek funktioniert großartig und jetzt mache ich einen Schritt zurück, um OO hinzuzufügen. Die Bibliothek besteht aus einer Mischung aus C- und CPP-Dateien. Ich weiß, um Klassen hinzuzufügen, brauche ich nur .cpp.Arduino IDE nicht erkennen, dass .c-Datei ist .cpp
Dies ist die LED.h-Datei.
https://gist.github.com/SaraJo/182220fda82cbe30255fe95f59d4a6b4
Hier ist die LED.cpp Datei.
https://gist.github.com/SaraJo/1b3d6967d7bc2ef2e70d79025b755eb9
Der Fehler, den ich bekommen ist:
In file included from /Users/sarachipps/Library/Arduino15/packages/Jewelbots/hardware/nRF51822/1.0.0/cores/JWB_nRF51822/Arduino.h:54:0,
from /Users/sarachipps/Library/Arduino15/packages/Jewelbots/hardware/nRF51822/1.0.0/cores/JWB_nRF51822/ble-nrf51822-master/source/main.c:49:
/Users/sarachipps/Library/Arduino15/packages/Jewelbots/hardware/nRF51822/1.0.0/cores/JWB_nRF51822/LED.h:12:1: error: unknown type name 'class'
class LED {
^
/Users/sarachipps/Library/Arduino15/packages/Jewelbots/hardware/nRF51822/1.0.0/cores/JWB_nRF51822/LED.h:12:11: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
class LED {
^
exit status 1
Error compiling for board JWB nRF51822(V1.0 32KB).
Ich vermute, dass der Arduino die CPP-Datei als .c ist zu sehen, gibt es einen Compiler-Flag I gesetzt muss? Vielen Dank.
Dies funktioniert, danke. –
Sie müssen das 'externe 'C'' sowohl bei der Deklaration (als Prototyp) als auch bei der Definition (wenn es notwendig ist, dh wenn '' main.cpp' 'etwas deklariert, das jemand anders anruft) (was normalerweise nicht der Fall sein sollte)) Die main() - Funktion selbst sollte es nicht brauchen, der C++ - Compiler weiß das implizit. – uliwitness