首页 > 解决方案 > 使用 Yocto 的 OpenCV 4.4.0 构建错误

问题描述

我正在尝试使用我在http://cgit.openembedded.org/meta-openembedded/tree/meta-oe/recipes-support/opencv找到的 opencv_4.4.0.bb 配方在 我的 Yocto 构建中包含 OpenCV 4.4.0 Yocto 版本是 2.2.0 (Morty)。

构建 opencv_3.4.3 时我没有看到任何问题。但是,我在使用 bitbake 构建 4.4.0 时遇到了错误: bitbake opencv. 这是错误日志的一部分:

/media/phyvm/dubuk/yocto/build/tmp/work/cortexa7hf-neon-vfpv4-phytec-linux-gnueabi/opencv/4.4.0-r0/contrib/modules/intensity_transform/src/bimef.cpp: In function 'cv::Mat cv::intensity_transform::solveLinearEquation(const cv::Mat_<float>&, cv::Mat_<float>&, cv::Mat_<float>&, float)':
/media/phyvm/dubuk/yocto/build/tmp/work/cortexa7hf-neon-vfpv4-phytec-linux-gnueabi/opencv/4.4.0-r0/contrib/modules/intensity_transform/src/bimef.cpp:136:10: error: 'Index' is not a member of 'Eigen'
     for (Eigen::Index i = 0; i < tempx.rows(); i++)
          ^~~~~
/media/phyvm/dubuk/yocto/build/tmp/work/cortexa7hf-neon-vfpv4-phytec-linux-gnueabi/opencv/4.4.0-r0/contrib/modules/intensity_transform/src/bimef.cpp:136:30: error: 'i' was not declared in this scope
     for (Eigen::Index i = 0; i < tempx.rows(); i++)
                              ^
/media/phyvm/dubuk/yocto/build/tmp/work/cortexa7hf-neon-vfpv4-phytec-linux-gnueabi/opencv/4.4.0-r0/contrib/modules/intensity_transform/src/bimef.cpp:145:10: error: 'Index' is not a member of 'Eigen'
     for (Eigen::Index j = 0; j < tempy.cols(); j++)
          ^~~~~
/media/phyvm/dubuk/yocto/build/tmp/work/cortexa7hf-neon-vfpv4-phytec-linux-gnueabi/opencv/4.4.0-r0/contrib/modules/intensity_transform/src/bimef.cpp:145:30: error: 'j' was not declared in this scope
     for (Eigen::Index j = 0; j < tempy.cols(); j++)
                              ^
/media/phyvm/dubuk/yocto/build/tmp/work/cortexa7hf-neon-vfpv4-phytec-linux-gnueabi/opencv/4.4.0-r0/contrib/modules/intensity_transform/src/bimef.cpp:158:10: error: 'Index' is not a member of 'Eigen'
     for (Eigen::Index j = 0; j < W_h.cols(); j++)
          ^~~~~
/media/phyvm/dubuk/yocto/build/tmp/work/cortexa7hf-neon-vfpv4-phytec-linux-gnueabi/opencv/4.4.0-r0/contrib/modules/intensity_transform/src/bimef.cpp:158:30: error: 'j' was not declared in this scope
     for (Eigen::Index j = 0; j < W_h.cols(); j++)
                              ^
/media/phyvm/dubuk/yocto/build/tmp/work/cortexa7hf-neon-vfpv4-phytec-linux-gnueabi/opencv/4.4.0-r0/contrib/modules/intensity_transform/src/bimef.cpp:160:14: error: 'Index' is not a member of 'Eigen'
         for (Eigen::Index i = 0; i < W_h.rows(); i++)
              ^~~~~
/media/phyvm/dubuk/yocto/build/tmp/work/cortexa7hf-neon-vfpv4-phytec-linux-gnueabi/opencv/4.4.0-r0/contrib/modules/intensity_transform/src/bimef.cpp:160:34: error: 'i' was not declared in this scope
         for (Eigen::Index i = 0; i < W_h.rows(); i++)

我试图在网上搜索这些错误,但找不到类似的东西。似乎头文件可能丢失或不是最新的,但我不确定。有人遇到过 Opencv4 的这些问题吗?

标签: opencvyoctoopencv4

解决方案


推荐阅读