OpenCV Win8.1 minGW32源代码错误:';TBBUTTONINFO';未在此范围中声明

OpenCV Win8.1 minGW32源代码错误:';TBBUTTONINFO';未在此范围中声明,opencv,windows-8.1,mingw32,opencv3.0,Opencv,Windows 8.1,Mingw32,Opencv3.0,我试图在Win8.1下的Eclipse中使用OpenCV3 beta,并且必须从git构建源代码,因为没有可供下载的minGW库。以前还可以,但今天(刚才)我从git master更新了所有OpenCV3源代码,现在mingw32 make突然失败,消息如下: \git\opencv\modules\highgui\src\window_w32.cpp:2011:9: error: 'TBBUTTONINFO' was not declared in this scope 守则本身是: tra

我试图在Win8.1下的Eclipse中使用OpenCV3 beta,并且必须从git构建源代码,因为没有可供下载的minGW库。以前还可以,但今天(刚才)我从git master更新了所有OpenCV3源代码,现在mingw32 make突然失败,消息如下:

\git\opencv\modules\highgui\src\window_w32.cpp:2011:9: error: 'TBBUTTONINFO' was not declared in this scope
守则本身是:

trackbar = icvFindTrackbarByName(window,trackbar_name);
if( !trackbar ){
    TBBUTTON tbs = {0};
    TBBUTTONINFO tbis = {0};
    ...
这不是唯一的错误,还有一些与上述类似的错误:

\git\opencv\modules\highgui\src\window_w32.cpp:2023:81: error: 'BTNS_AUTOSIZE' was not declared in this scope

\git\opencv\modules\highgui\src\window_w32.cpp:2023:97: error: 'BTNS_BUTTON' was not declared in this scope
由于存在大量有用的模块依赖关系,因此不可能取消选中makefile中的highgui模块并编译OpenCV

我猜这是一个bug。此处报道:

问题(根据Artur Wieczorek的说法)是MinGW默认设置的操作系统版本。要解决此问题,请在MinGW目录中找到“commctrl.h”之类的内容

#if 0
#define _WIN32_IE   0x0300
#endif
然后把它改成

#if 1
#define _WIN32_IE   0x0500
#endif
问题(根据Artur Wieczorek的说法)是MinGW默认设置的操作系统版本。要解决此问题,请在MinGW目录中找到“commctrl.h”之类的内容

#if 0
#define _WIN32_IE   0x0300
#endif
然后把它改成

#if 1
#define _WIN32_IE   0x0500
#endif