Arduino IDE用の特定のボードのライブラリを作成しています。ライブラリは素晴らしい作品ですが、今ではOOを追加するために一歩前進しています。ライブラリには.cと.cppファイルが混在しています。私はクラスを追加するために、私は.cppだけを使う必要があることを知っています。Arduino IDEは.cファイルが.cppであることを認識しません
これはLED.hファイルです。ここで
https://gist.github.com/SaraJo/182220fda82cbe30255fe95f59d4a6b4
はLED.cppファイルです。
https://gist.github.com/SaraJo/1b3d6967d7bc2ef2e70d79025b755eb9
私が手にエラーがある:私はArduinoのは.Cと.cppファイルを見ていることを推測している
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).
、私は設定する必要があるコンパイラフラグはありますか?ありがとうございました。
これはうまくいきました。 –
宣言(プロトタイプとも呼ばれます)と定義の両方で 'extern" C "'を実行する必要があります(必要なら 'main.cpp'が他の誰かが呼び出すものを宣言しています)main()関数自体は必要ではないはずですが、C++コンパイラはそれを暗黙的に行うことを知っています。 – uliwitness