4

これは簡単な問題です。スケッチ内でコードを 2 つのファイルに分割しようとしています。

test.ino:

void setup(){}
void loop(){ fn(); }

test.c:

char myChar = '?';
void fn(){ myChar++; }

次のようなさまざまな構成で test.h ファイルを使用してみました。

  • extern char myChar;
  • char myChar;
  • void fn();
  • extern void fn();

また、さまざまなファイルに test.c および test.h ファイルを含めるさまざまな組み合わせがありますが、次のようなコンパイラ エラーが常に発生します。

test.cpp.o:(.data.myChar+0x0): `myChar' の複数定義

test.co:(.data.myChar+0x0): 最初にここで定義

または

test.cpp.o: 関数 `setup' 内:

C:\Program Files\arduino-1.0.4/test.ino:4: `fn()' への未定義の参照

私は本当にこれで私の髪を引っ張っています。どんな助けでも大歓迎です

4

2 に答える 2

4

Arduino IDE は、初心者のプログラマーを対象としています。スキルが向上するにつれて、より伝統的なプログラミング ツールに分岐したいと思うかもしれません。

Arduino プロジェクトは、実際には単なる c/c++ アプリケーションです。その点で、c/c++ コミュニティ全体が背後にいます。彼らの最も愛され、軽蔑されているツールの 1 つは、make と呼ばれます。それを使用してプロジェクトをデプロイおよびビルドできます。ここが素晴らしい出発点です。http://ed.am/dev/make/arduino-mk/arduino.mk

于 2013-05-12T18:17:39.923 に答える