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 连接才成功,网速国内是真的慢!!!!