【C++】OpenCV4.1.0及OpenCV_contrib4.1.0,cmake編譯到 VS2019;提示缺少boostdesc_bgm.i文件等問題的解決方法

錯(cuò)誤報(bào)告的原因:

? ? ? ?Opencv_contrib 需要自己編譯,我們選用的是cmake進(jìn)行編譯
? ? ? ?在cmake中設(shè)置好路徑,進(jìn)行configure,標(biāo)紅了許多,提示有warning.這也是后面在VS 中install報(bào)錯(cuò)的原因,缺少相關(guān)的文件。cmake是直接從源碼下載相關(guān)的文件到本地,當(dāng)文件的地址無法訪問時(shí),相關(guān)的文件便沒有下載到本地,而是生成了一個(gè).cache文件夾。該文件夾如圖所示:

在這里插入圖片描述

未下載的文件位置

? ? ? ?該文件夾中生成的都是未下載成功的文件,需要我們手動(dòng)來下載。下載的地址在哪呢?這時(shí)我們就要查找cmake的日志了,該日志的地址在我們新編譯存儲(chǔ)的文件夾中,我設(shè)置的文件夾名稱為Newbuild,日志的名字為CMakeDownloadLog.txt,如圖所示:

在這里插入圖片描述

? ? ? ?打開日志,截取一段看看

cmake_download "D:/opencv/opencv346/sources/.cache/ffmpeg/41b81bb9a50cabd4bea385f7b50a069a-opencv_ffmpeg.dll"

"https://raw.githubusercontent.com/opencv/opencv_3rdparty/fe71c0ad807fdc33c2178e48e488f1e9b177c39a/ffmpeg/opencv_ffmpeg.dll"

? ? ? ?日志的意思是:cmake嘗試下載opencv_ffmpeg.dll文件,md5fe71c0ad807fdc33c2178e48e488f1e9b177c39a,下載地址https://raw.githubusercontent.com/opencv/opencv_3rdparty/fe71c0ad807fdc33c2178e48e488f1e9b177c39a/ffmpeg/opencv_ffmpeg.dll
? ? ? ?但下載失敗,因此報(bào)錯(cuò)。所以我們手動(dòng)下載該文件并將該文件名改為md5-opencv_ffmpeg.dll,并把該文件放到.cache/ffmpeg文件夾下。

下載完所有文件后

? ? ? ?將所有未下載的文件用同樣的方法下載好后,重新configure,配置路徑,注意,這里需要勾選BUILD_opencv_world,以及OPENCV_ENABLE_NONFREE,然后generate,打開VS,根據(jù)自己的需要,設(shè)置好Debug,x64;或者是Release, x64后,點(diǎn)擊生成->生成解決方案.經(jīng)過漫長(zhǎng)等待后,在解決方案資源管理器中,打開CmakeTragets,右擊INSTALL,選擇僅用于項(xiàng)目,僅生成INSTALL。
? ? ? ?打開新的VS項(xiàng)目,為項(xiàng)目添加包含目錄,庫目錄,鏈接庫,這都是老生常談了,不再贅述。至此,如果沒有出現(xiàn)錯(cuò)誤的話,順利結(jié)束你的編譯之旅。
? ? ? ?Errrrrr..........................

怎么可能這么容易結(jié)束呢?你就沒有報(bào)錯(cuò)嗎?你這個(gè)可愛的孩子?

可能出現(xiàn)的錯(cuò)誤:

? ? ? ?1.在文件的下載過程中,有的文件是可以直接下載的,有的是直接打開了網(wǎng)頁,如https://raw.githubusercontent.com/opencv/opencv_3rdparty/fe71c0ad807fdc33c2178e48e488f1e9b177c39a/ffmpeg/ffmpeg_version.cmake ,這時(shí)我們需要點(diǎn)擊右鍵另存為txt文件,再修改后綴為cmake文件。
? ? ? ?2.文件的下載也有另外一種方式,直接到github的opencv_contrib頁面進(jìn)行下載,選擇相應(yīng)版本的opencv_contrib,下載相應(yīng)的模塊文件如ffmpeg等等
? ? ? ?3.LNK1104 無法打開文件“python37_d.lib”。說明你的Python在安裝時(shí)沒有安裝Debug版本,那么重新修改Python的安裝設(shè)置,將Debug版本添加進(jìn)來。我的另一篇博客有介紹:Python37_d.lib

? ? ? ?4.最重要的BUG,如果編譯OpenCV,那么你就要檢查C盤的Windows文件夾下的syswow64和system32文件夾中是否含有opencv相關(guān)的dll,如果有,將他們?nèi)縿h除,不然在運(yùn)行程序時(shí)就會(huì)報(bào)錯(cuò):無法定位程序輸入點(diǎn)于動(dòng)態(tài)鏈接庫錯(cuò)誤;

? ? ? ?歷經(jīng)許多磨難,最終程序運(yùn)行成功!僅以此博客記錄這漫長(zhǎng)的過程!?。?/p>

? ? ? ?關(guān)注公號(hào)【開發(fā)小鴿】,獲取海量計(jì)算機(jī)視覺與深度學(xué)習(xí)資源,實(shí)戰(zhàn)項(xiàng)目源碼,最新論文下載,大廠面試經(jīng)驗(yàn)!??!?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容