opencv 源码编译时通常会报缺少文件,或者是文件下载失败问题,可以查看cat opencv/build/CMakeDownloadLog.txt 发现:

 

 意思就是下载数据的时候失败,同时会到 /opencv/.cache里面拷贝过来,查看 /opencv/.cache/ippicv/7421de0095c7a39162ae13a6098782f9-ippicv_2020_lnx_intel64_20191018_general.tgz 的数据的时候发现改文件只有0字节,同理可以看到boostdesc_*也是,如下:

 

 其实,通过代码:git clone下来的(这里是最新的opencv4.5.1)在 opencv/.cahe/ 文件夹下面的文件有:

ade  data  ippicv  xfeatures2d,其中, data  ippicv  xfeatures2d 里面的文件都没有,data下面是  7505c44ca4eb54b4ab1e4777cb96ac05-face_landmark_model.dat

要自己去下载这个数据,可以到github上面下载(之前给的csdn连接是需要积分的,这里给免费的):

https://github.com/opencv/opencv_3rdparty/tree/ippicv/master_20191018

https://github.com/opencv/opencv_3rdparty/tree/contrib_face_alignment_20170818

https://github.com/opencv/opencv_3rdparty/tree/contrib_xfeatures2d_vgg_20160317

https://github.com/opencv/opencv_3rdparty/tree/contrib_xfeatures2d_boostdesc_20161012

仔细发现,就是opencv git 源码下面 opencv_3rdparty 几个分支,可以自己编译,也可以拿到编译好的,比如下载了

face_landmark_model.dat 这个文件,替换opencv/.cache/data/7505c44ca4eb54b4ab1e4777cb96ac05-face_landmark_model.dat,

为了进一步确认,可以对比下md5码:

md5sum face_landmark_model.dat

7505c44ca4eb54b4ab1e4777cb96ac05  face_landmark_model.dat

和opencv/.cache/data/7505c44ca4eb54b4ab1e4777cb96ac05-face_landmark_model.dat 这个面是一致的,其他文件类似操作

 

最后   cmake -D CMAKE_INSTALL_PREFIX=/usr/local -D CMAKE_BUILD_TYPE=Release -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules ..

查看:cat CMakeDownloadLog.txt,下面列出boostdesc_bgm.i 这个项目:

 

 大概意思是:

缺少:boostdesc_bgm.i

校验md5: "/home/software/SLAM_Lib/opencv/.cache/xfeatures2d/boostdesc/0ea90e7a8f3f7876d450e4149c97c74f-boostdesc_bgm.i"

然后拷贝,等等

 

最后补足了缺少文件,就可以build 通过了

注意:

   有些文件用 git clone 下载失败,用 下载zip方式还是失败,只有用 aria2c 断点多线程下载缺少的zip  连接才成功,网速国内是真的慢!!!!