я получаю сообщение об ошибке, в то время как MINGW компилирует OpenCV для C ++? - PullRequest
0 голосов
/ 02 апреля 2019

хорошо, я пытался настроить среду для программы обнаружения людей. Я буду использовать язык программирования c ++, а компилятор - блоки кода .. я скачал opencv 4.1 также скачал CMake и минг я также добавил путь в настройке среды .. я распаковал 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: в функции 'реализовать_virt_arrays': C: \ opencv \ source \ opencv \ sources \ 3rdparty \ libjpeg-turbo \ src \ jmemmgr.c: 662: 11: ошибка: необъявлено 'SIZE_MAX' (первое использование в этой функции) if (SIZE_MAX - Maximum_space * [3rdparty / libjpeg-turbo / CMakeFiles / libjpeg-turbo.dir / src / jmemmgr.c.obj] Ошибка 1 CMakeFiles \ Makefile2: 312: сбой рецепта для цели '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: *** [все] Ошибка 2

1 Ответ

0 голосов
/ 02 апреля 2019

На самом деле можно скомпилировать opencv 3.4.3 с помощью mingw32 (для примера я использовал 5.3.0). Следуйте этому руководству. Он немного староват, но работает даже для opencv 3.4.3 Шаги для сборки:

  1. Загрузите последнюю версию Opencv с официального репозитория github (предположим, вы загрузили opencv в каталог «opencv» где-то на вашем диске)
  2. Перейдите в opencv / modules / videoio / src, откройте cap_dshow.hpp, вставьте #define NO_DSHOW_STRSAFE (прямо поверх всех остальных), сохраните файл для принятия изменений
  3. Установить CMake (я использовал 3.5.1)
  4. Откройте CMake, укажите расположение источников Opencv3.4.3 и укажите место, где вы хотите их построить (предположим, что для экземпляра это будет папка «build» где-то на вашем диске), нажмите «Настроить кнопку»
  5. Выберите в диалоговом окне "Mingw Makefiles" и подождите, пока все источники будут предварительно обработаны
  6. Все параметры красного цвета - это нормально, отметьте «Сгруппировано» в правой верхней области окна CMake, теперь мы должны проверить некоторые флаги:

    в группе CMAKE: для опции CMAKE_BUILD_TYPE записать Release (для сборки релизной версии opencv), также здесь вы можете указать, куда вы хотите установить двоичные файлы Opencv после сборки

    в группе ENABLE: отметьте ENABLE_CXX11 и снимите отметку ENABLE_PRECOMPILED_HEADERS

    в группе WITH: снимите флажок 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 install

  13. Выполнено

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...