簡體   English   中英

mingw 為 C++ 編譯 opencv 時出現錯誤?

[英]i am getting error while mingw is compiling opencv for c++?

好的,我正在嘗試為人體檢測程序設置環境..我將使用的編程語言是 c++,編譯器是代碼塊..我已經下載了 opencv 4.1 也下載了 CMake 和 mingw 我還在環境設置中添加了路徑..我提取了 opencv在 c:\\opencv\\sources 文件夾中,並通過使用 cmake 我在 c:\\opencv\\build 中配置並生成了構建文件

在此之后我打開 C:\\opencv\\source\\opencv\\build 這個文件夾並右鍵單擊它並打開 powershell 並輸入 mingw32-make commnd。

這樣 Mingw 將開始編譯 OpenCV,但在 5% 的錯誤彈出后...

PS C:\opencv\source\opencv\build> mingw32-make

[ 2%] 構建目標 zlib [ 2%] 構建 C 對象 3rdparty/libjpeg-turbo/CMakeFiles/libjpeg-turbo.dir/src/jmemmgr.c.obj C:\\opencv\\source\\opencv\\sources\\3rdparty\\libjpeg- turbo\\src\\jmemmgr.c: 在函數 'realize_virt_arrays': C:\\opencv\\source\\opencv\\sources\\3rdparty\\libjpeg-turbo\\src\\jmemmgr.c:662:11: 錯誤:'SIZE_MAX' 未聲明(第一次使用在這個函數中) if (SIZE_MAX - maximum_space < new_space) ^~~~~~~~ C:\\opencv\\source\\opencv\\sources\\3rdparty\\libjpeg-turbo\\src\\jmemmgr.c:662:11: 注意:每個對於出現在 3rdparty\\libjpeg-turbo\\CMakeFiles\\libjpeg-turbo.dir\\build.make:678: recipe for target '3rdparty/libjpeg-turbo/CMakeFiles/libjpeg-turbo.dir/ 中的每個函數,未聲明的標識符僅報告一次src/jmemmgr.c.obj' failed mingw32-make[2]: * [3rdparty/libjpeg-turbo/CMakeFiles/libjpeg-turbo.dir/src/jmemmgr.c.obj] 錯誤 1 ​​CMakeFiles\\Makefile2:312: recipe for目標 '3rdparty/libjpeg-turbo/CMakeFiles/libjpeg-turbo.dir/all' 失敗 mingw32-make[1]: * [3rdparty/libjpeg-turbo/CMakeFiles/ libjpeg-turbo.dir/all] 錯誤 2 Makefile:161: 目標 'all' 的配方失敗 mingw32-make: *** [all] 錯誤 2

實際上可以通過 mingw32 編譯 opencv 3.4.3(我使用了 5.3.0 作為實例)。 遵循本指南。 它有點舊但甚至適用於 opencv 3.4.3 構建步驟:

  1. 從官方 github 存儲庫下載最新的 Opencv 版本(假設您已將 opencv 下載到磁盤上的“opencv”目錄中)
  2. 轉到 opencv/modules/videoio/src,打開 cap_dshow.hpp,粘貼 #define NO_DSHOW_STRSAFE(在所有其他文件的頂部),保存文件以提交更改
  3. 安裝 CMake(我用過 3.5.1)
  4. 打開 CMake,指向 Opencv3.4.3 源位置也指向您想要構建它們的位置(假設該實例將是磁盤上的“構建”目錄),按“配置按鈕”
  5. 從對話框中選擇“Mingw Makefiles”並等待源代碼將被預處理
  6. 所有選項都是紅色是正常的,在 CMake 窗口的右上角區域檢查“分組”,現在我們應該檢查一些標志:

    在 CMAKE 組中:對於選項 CMAKE_BUILD_TYPE 寫入 Release(以構建 opencv 的發布版本),您也可以在此處指定構建后將安裝 Opencv 二進制文件的位置

    在組 ENABLE 中:選中 ENABLE_CXX11 並取消選中 ENABLE_PRECOMPILED_HEADERS

    在組中:取消選中 WITH_MSMF

  7. 按“配置”按鈕,直到處理完成,現在所有選項都應該變成白色

  8. 按“生成”按鈕並等待(在您的構建目錄中應創建 Makefile,您可以在此步驟后關閉 CMake)

  9. 確保您的 mingw 工具鏈位置為您的系統所知(查看系統環境變量 PATH 是否包含 mingw 工具鏈的路徑)

  10. 打開 cmd.exe,將目錄切換到你的 opencv 的構建目錄

  11. 讓我們構建 opencv(-j[uint] - 選項指定要使用的線程數)

    .../build> mingw32-make -j4

  12. 讓我們安裝opencv

    .../build> mingw32-make 安裝

  13. 完畢

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM