我试图在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
答案 0 :(得分:4)
问题(根据Artur Wieczorek)是MinGW默认设置的操作系统版本。为了治愈它找到" commctrl.h"在MinGW目录和类似
#if 0
#define _WIN32_IE 0x0300
#endif
然后将其更改为
#if 1
#define _WIN32_IE 0x0500
#endif