【问题标题】:Compilation of OpenCV opencv_test_photo errorOpenCV编译opencv_test_photo报错
【发布时间】:2020-10-06 05:38:16
【问题描述】:

我正在尝试使用 MinGW53_32 编译 OpenCV 3.4.9。我在使用CMake编译OpenCV的时候,发现了以下问题:

[ 96%] 构建目标 opencv_perf_objdetect
[ 96%] 构建目标 opencv_test_superres
[ 97%] 构建目标 opencv_test_stitching
[ 98%] 构建目标 opencv_perf_superres
[ 98%] 构建目标 opencv_perf_stitching
[ 98%] 构建目标 opencv_test_videostab
D:\Opencv\opencv\opencv\sources\modules\photo\test\test_hdr.cpp:在 成员函数'虚空 opencv_test::{匿名}::Photo_AlignMTB_regression_Test::Body()':
D:\Opencv\opencv\opencv\sources\modules\photo\test\test_hdr.cpp:133:39: 错误:“时间”未在此范围内声明
srand(static_cast(time(0)));
^
模块\照片\CMakeFiles\opencv_test_photo.dir\build.make:165:配方 为目标 '模块/照片/CMakeFiles/opencv_test_photo.dir/test/test_hdr.cpp.obj' 失败
mingw32-make[2]: *** [模块/照片/CMakeFiles/opencv_test_photo.dir/test/test_hdr.cpp.obj] 错误 1 ​​CMakeFiles\Makefile2:2601:目标配方 'modules/photo/CMakeFiles/opencv_test_photo.dir/all' 失败
mingw32-make[1]: *** [modules/photo/CMakeFiles/opencv_test_photo.dir/all] 错误 2
Makefile:180: 目标“全部”的配方失败
mingw32-make: *** [全部] 错误 2

我几乎成功了,但是出现了这个问题,我不知道如何解决它。我没有找到有关此错误的任何信息。

【问题讨论】:

    标签: c++ opencv cmake


    【解决方案1】:

    在 Windows 中构建 OpenCV 时不再支持 MinGW 32 位,如下所示:https://answers.opencv.org/question/122696/is-it-possible-to-build-opencv-320-libraries-using-mingw-for-a-32bit-windows/。我知道您正在使用调试输出中显示的路径使用 Windows。

    但是,这看起来是一个非常简单的解决方法。进入D:\Opencv\opencv\opencv\sources\modules\photo\test\test_hdr.cpp 并将此语句放在标题声明所在的位置:

    #include <ctime>
    

    您在此文件中看到的错误是因为 time 是一个函数,它是文件中未找到的 ctime 标头的一部分。我正在从官方 OpenCV 存储库咨询https://github.com/opencv/opencv/blob/master/modules/photo/test/test_hdr.cpp。确保包含它,然后重新构建它。

    【讨论】:

    • 哦,太好了!非常感谢!!
    • 不客气。请让社区知道您的问题已通过接受此答案得到解决。您可以通过单击此答案顶部的复选标记图标来做到这一点,位于向上和向下投票按钮下方的左侧。祝你好运!
    猜你喜欢
    • 2020-08-26
    • 2012-12-31
    • 1970-01-01
    • 2017-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-13
    • 2011-11-20
    相关资源
    最近更新 更多