MinGW 4.8.1 を使用して clang(3.3) をコンパイルできません。70% のビルドが完了すると、常に次のエラーが表示されます。
質問する
658 次
1 に答える
0
clang/lib/Basic/FileManager.cpp
includessys/stat.h
を定義します#define stat _stat64i32
(実際には、間にいくつかの他の定義がありますが、アイデアはわかります;)clang/include/clang/Basic/FileManager.h
含まないsys/stat.h
; 代わりに、前方宣言のみがあります。- したがって、ヘッダーの解析中に前方宣言が使用されます (
struct stat
) - しかし、最終的に実装に到達すると、プリプロセッサが作動し
struct stat
てstruct stat64i32
. したがって、ミスマッチ。
最善の解決策は、ヘッダーの前方宣言を変更して、代わりに を含めることsys/stat.h
です。(実際にコンパイルできるかどうかはテストしていません)
現在のトランクにはコードが含まれていません。
更新: についてoff64_t
。これは、最近では次のように定義され_mingw_off_t.h
ています。
#ifndef _OFF64_T_DEFINED
#define _OFF64_T_DEFINED
__MINGW_EXTENSION typedef long long _off64_t;
#if !defined(NO_OLDNAMES) || defined(_POSIX)
__MINGW_EXTENSION typedef long long off64_t;
#endif
#endif /*_OFF64_T_DEFINED */
したがって、 (または)_POSIX
を含める前に定義することをお勧めします。io.h
stdio.h
于 2013-09-06T23:21:52.550 に答える