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 連接才成功,網速國內是真的慢!!!!