2017-11-29 13 views
1

Mingw64でCMakeとBoostに基づいてC++プロジェクトを構築しようとしています。 cmakeをインストールし、msys2-mingw64のパッケージを追加しました。 相違するタイプ(LPFILETIMEFILETIME)についてこのエラーをGetSystemTimeAsFileTimeに取得してください。エラー:makew64でcmake + boostプロジェクトをビルド中に 'GetSystemTimeAsFileTime'のタイプが競合します

$ cmake --build . 
[ 1%] Building CXX object CMakeFiles/... 
In file included from ....cpp:1: 
In file included from C:/msys64/mingw64/include\boost/thread.hpp:13: 
In file included from C:/msys64/mingw64/include\boost/thread/thread.hpp:12: 
In file included from C:/msys64/mingw64/include\boost/thread/thread_only.hpp:15: 
In file included from C:/msys64/mingw64/include\boost/thread/win32/thread_data.hpp:10: 
In file included from C:/msys64/mingw64/include\boost/thread/thread_time.hpp:10: 
In file included from C:/msys64/mingw64/include\boost/date_time/microsec_time_clock.hpp:23: 
C:/msys64/mingw64/include\boost/date_time/filetime_functions.hpp:57:46: error: conflicting types for 'GetSystemTimeAsFileTime' 
     __declspec(dllimport) void __stdcall GetSystemTimeAsFileTime(FILETIME* lpFileTime); 
              ^
C:\msys64\mingw64\x86_64-w64-mingw32\include\sysinfoapi.h:38:26: note: previous declaration is here 
    WINBASEAPI VOID WINAPI GetSystemTimeAsFileTime (LPFILETIME lpSystemTimeAsFileTime); 
         ^

など多くの類似のエラー。

mingw64パッケージのバグ?定義がありませんか?

答えて

0

1つは、BOOST_USE_WINDOWS_Hを定義する必要があります。 cmakeのプロジェクトのための

修正:

if(WIN32) 
    add_definitions(-DBOOST_USE_WINDOWS_H) 
endif() 
関連する問題