C++ クラスを作成していますが、修正できるエラーが発生しましたが、よくわかりません。
次のヘッダー (main.h) を使用しようとしています。
#include <git2.h>
class Test
{
public:
private:
git_repository gitRepo;
};
および次のファイル (main.cpp):
#include "main.h"
int main(int argc, char *argv[]){
Test test;
}
しかし、それは私に「Test::gitRepo' uses undefined struct 'git_repository'」を与えています。ただし、構造体自体の代わりに構造体へのポインターを使用すると、構造体は実際には未定義ではありません...
git_repository * gitRepo;
...それはうまくコンパイルされます。
git_repository の型宣言は次のとおりです。
typedef struct git_repository git_repository;
インクルード ツリー全体を grep しましたが、それがコード内の唯一の typedef または struct 定義です。これは、実際の構造体定義が実際のライブラリ実装内に隠されているが、ヘッダーには含まれていないことを示唆していますか?