2017-11-29 19 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

하나가 나오면 BOOST_USE_WINDOWS_H을 정의해야합니다. CMake 프로젝트에 대한

수정 :

if(WIN32) 
    add_definitions(-DBOOST_USE_WINDOWS_H) 
endif()