0

次のようなファイル構造があります。

interface.h --> interface.c
      |
      |
effects.h --> effects.c
      |
      |
    main

ただし、effects.h で宣言された関数は、main ではアクセスできません。

コード スニペット:

主要 :

#include "interface.h"
#include "effects.h"
void setup()  //Initialize all variables here
{

....
turnoff();
};

Effects.h :

#ifndef EFFECTS
#define EFFECTS
void turnoff();
#endif

Effects.c :

#include "interface.h"
#include "effects.h"
void turnoff()
{
....
};

interface.h :

#ifndef INTERFACE
#define INTERFACE
....
#endif

エラーメッセージ :In function ``loop':undefined reference to ``turnoff()'

ループ関数が空であるため、エラーメッセージは意味がありません!

4

4 に答える 4

1

IDE は *.c ファイルではなく *.cpp ファイルを必要としていると思います。

とにかく、詳細なコンパイラ出力を取得するには、ファイル - >設定の下の設定を変更する必要があります。通常、これはいくつかのヒントを提供します。少なくとも、実際にコンパイルされたファイルを含む一時ディレクトリが表示されます。これにより、問題をより正確に分析できます。

于 2013-02-10T19:08:33.280 に答える
1

3 つの .c ファイルすべてを一緒にコンパイルしてリンクする必要があります。それは次のようにgcc簡単です

gcc main.c interface.c effects.c -o executable_name

于 2013-02-10T15:03:55.240 に答える
0

effects.c最新の回答から、それは編集の一部ではないと感じています。私は開発環境を認識していませんが、入手可能なデータから、これは私の観察です。

于 2013-02-10T15:25:23.100 に答える
0

あなたが使用しているフラグは何ですか?関数を明示的に extern として宣言する必要があるのではないでしょうか?

extern void turnoff();
于 2013-02-10T16:07:45.927 に答える