【问题标题】:Errors building OpenCV 3.2 @ Win7Prof64 with Code:Blocks 16.01/ mingw 4.9.2使用代码构建 OpenCV 3.2 @ Win7Prof64 时出错:Blocks 16.01/mingw 4.9.2
【发布时间】:2017-06-07 14:42:18
【问题描述】:

完成 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 提示。

编辑: 我刚刚自己找到了一个提示:

http://answers.opencv.org/question/104125/i-am-unable-to-build-opencv-using-mingw-codeblockstotally-a-beginner/

我是否理解正确,mingw 4.9.2 与最近的 openCV 无关? (但 4.9.2 是 C:B 实际附带的编译器)...

【问题讨论】:

    标签: opencv mingw codeblocks


    【解决方案1】:

    想通了。

    尽管 OpenCV 在 2015 年放弃了对 mingw 编译器的支持 (为什么??) 用mingw构建OpenCV是很有可能的。

    2 个模块在构建时出现问题:highgui 和 ts。

    两者似乎都与 mingw 的处理方式有关 窗口标题。

    对于模块 highgui: Error while building OpenCV :: MonitorFromRect was not declared in this scope

    对于模块 ts: https://github.com/google/googletest/issues/893

    为什么 - 以天堂的名义 - 这么多绊脚石 在使用免费软件工具链的方式上? 难怪 M$ 会扼杀一切。 它必须方便使用。 如果我需要一辆车来做我的工作,我想使用这辆车。 不必构建(“并且要理解,这很重要!”)它。 SCNR。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-12
      • 1970-01-01
      • 2017-12-05
      相关资源
      最近更新 更多