OpenCV Win8.1 minGW32源代码错误:';TBBUTTONINFO';未在此范围中声明
我试图在Win8.1下的Eclipse中使用OpenCV3 beta,并且必须从git构建源代码,因为没有可供下载的minGW库。以前还可以,但今天(刚才)我从git master更新了所有OpenCV3源代码,现在mingw32 make突然失败,消息如下: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
\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