10

Arduino C ファイルのコンパイル中に、「`readArms()' への未定義の参照」というエラーが表示されます。

コードは貼り付けビンにあります。

しかし、基本的に何が起こるかは次のとおりです。

私が使用するINOファイルでは:

readArms();

「armfunctions.h」と「armfunctions.c」で宣言されているもの

.h ファイルには

void readArms(void);

そして .c ファイル:

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);
}
4

2 に答える 2

28

私は今日これを何時間も調査し、さまざまなスケッチを作成してテストしており、(すでにわかっているように)それらを次のように変更すること.cppが回避策であることがわかりましたが、具体的にacファイルを作成したい場合は、プロトタイプをヘッダーを追加してコンパイルします。それについていくつかの良い投稿がありますが、問題の核心は.hファイルに次のように書かれています:

#ifdef __cplusplus
extern "C" {
#endif

void readArms(void);

#ifdef __cplusplus
}
#endif
于 2014-01-22T07:09:21.960 に答える
-2

.C ファイルで次を使用する必要があります。

void armfunctions::readArms(void)... (:: の前の部分は、.h ファイル内のクラス名です)

于 2014-11-12T15:06:56.470 に答える