に定義することはできませんが、私は宣言を持っています:C++ stat.h不完全な型と、私は自分のコードの上部にstat.h</p> <p>と非常に奇妙な問題を抱えてい
int FileSize(string szFileName);
最後に、それ自体のように定義される関数は、以下:
int FileSize(string szFileName)
{
struct stat fileStat;
int err = stat(szFileName.c_str(), &fileStat);
if (0 != err) return 0;
return fileStat.st_size;
}
私はこのコードをコンパイルしようとすると0
は、私はエラーを取得する:
divide.cpp: In function 'int FileSize(std::string)':
divide.cpp:216: error: aggregate 'stat fileStat' has incomplete type and cannot be defined
divide.cpp:217: error: invalid use of incomplete type 'struct stat'
divide.cpp:216: error: forward declaration of 'struct stat'
このスレッドから:How can I get a file's size in C? 私はこのコードは動作するはずですし、それがコンパイルできない理由を私は理解できないと思います。誰かが私が間違っていることを見つけることができますか?
OSとコンパイラ? – mikithskegg
正しいパスセパレータを使用していますが、同じ問題が発生しています。 Windows上でMinGWでコンパイルしていますが、コンパイラにはstruct statと関数statが宣言されたsys/stat.hファイルがあります。これ以上のアイデアは? – Youda008