1

奇妙な問題があります。見つけたすべての記事を読みましたが、すべて正しいと思います。

ヘッダー ファイルで定義された構造体があります。a.h

typedef struct{
  int io;
} apa;

このファイルはフォルダーにあります。src/model

さらに、ルートディレクトリにはメインファイルがあり、次のようにヘッダーファイルを含めます。

#include "a.h" 

int main(){
  apa X;
 return 0;
}

gcc を使用してこれをコンパイルすると、次のI-flagよう-Isrc/model
なエラー コンパイル警告が表示されます。

'apa' undeclared (first use in this function)
(Each undeclare identifier is reported only once for each function it appears in)
X undeclared (first use in this function) 

問題が見つからないようです。助けていただければ幸いです。

4

3 に答える 3

0

メイン ファイルがヘッダー ファイルとは別のフォルダーにある場合は、メイン ファイルからのヘッダー ファイルの合計パスを記載する必要があります。

例えば)

#include "/src/model/a.h"
于 2013-04-05T15:54:03.897 に答える
0

ヘッダー ファイルをインクルードすると#include "a.h"、コンパイラは最初に現在のディレクトリでヘッダー ファイルを検索し、次に標準ライブラリ ディレクトリを検索します。あなたの場合、ヘッダーファイルをsrc/modelという名前のディレクトリに保存し、メインファイルを という名前のディレクトリに保存しましたroot。そのため、ヘッダー ファイルはコンパイラによって検索されません。この問題を解決するには、ヘッダー ファイルとメイン ファイルの両方を同じディレクトリに保存するか、次のようにヘッダーを含めて全体のパスを指定します。

#include "/src/model/a.h"
于 2013-04-05T15:54:04.180 に答える
-1

ヘッダー ファイルが別のフォルダーにある場合は、ヘッダー ファイルへのフル パスをメイン ファイルに指定する必要があります。

例えば

instead of just using
#include "a.h"
you have to use   
#include "path to header file/a.h"
于 2013-04-05T17:00:04.127 に答える