执行CMake(全部默认)后,打开Code:Block项目文件 和建筑物给出了这些错误:
D:\Guido\develop\opencv\sources\modules\highgui\src\window_w32.cpp: In function 'void cvSetModeWindow_W32(const char*, double)':
D:\Guido\develop\opencv\sources\modules\highgui\src\window_w32.cpp:474:47: error: 'MONITOR_DEFAULTTONEAREST' was not declared in this scope
hMonitor = MonitorFromRect(&rect, MONITOR_DEFAULTTONEAREST);
^
D:\Guido\develop\opencv\sources\modules\highgui\src\window_w32.cpp:474:71: error: 'MonitorFromRect' was not declared in this scope
hMonitor = MonitorFromRect(&rect, MONITOR_DEFAULTTONEAREST);
^
D:\Guido\develop\opencv\sources\modules\highgui\src\window_w32.cpp: In function 'LRESULT MainWindowProc(HWND, UINT, WPARAM, LPARAM)':
D:\Guido\develop\opencv\sources\modules\highgui\src\window_w32.cpp:1377:45: error: 'MONITOR_DEFAULTTONEAREST' was not declared in this scope
hMonitor = MonitorFromRect(&rect, MONITOR_DEFAULTTONEAREST);
^
D:\Guido\develop\opencv\sources\modules\highgui\src\window_w32.cpp:1377:69: error: 'MonitorFromRect' was not declared in this scope
hMonitor = MonitorFromRect(&rect, MONITOR_DEFAULTTONEAREST);
......是什么让这一切变得更加奇怪:
在此文件的开头(window_w32.cpp),符号为_WIN32_IE 根本没有定义(为什么?)。
我不熟悉C:B和OpenCV的提示很受欢迎。
编辑: 我刚刚发现了一个提示:
我是否明白这一点,mingw 4.9.2与最近的openCV没有关系? (但4.9.2是实际附带C:B的编译器)...
答案 0 :(得分:0)
想出来。
尽管OpenCV在2015年放弃了mingw编译器支持 (为什么??) 用mingw构建OpenCV是可能的。
2个模块在构建时会出现问题:highgui和ts。
两者似乎都与mingw的处理方式有关 Windows标题。
对于模块highgui: Error while building OpenCV :: MonitorFromRect was not declared in this scope
对于模块ts: https://github.com/google/googletest/issues/893
为什么 - 在天堂的名字 - 这么多磕磕绊绊的石头 在使用免费工具链的方式? 难怪M $会扼杀一切。 它必须方便使用。 如果我需要一辆车去做我的工作,我想要用这辆车。 不必建立("并理解,这很重要!")它。 SCNR。