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

时间:2014-12-27 01:15:03

标签: 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

代码本身是:

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。

更新猜猜这是一个错误。在此报告:http://code.opencv.org/issues/4087

1 个答案:

答案 0 :(得分:4)

问题(根据Artur Wieczorek)是MinGW默认设置的操作系统版本。为了治愈它找到" commctrl.h"在MinGW目录和类似

#if 0
#define _WIN32_IE   0x0300
#endif

然后将其更改为

#if 1
#define _WIN32_IE   0x0500
#endif