Solución:
Aquí hay instrucciones para configurar OpenCV en MSYS2 / mingw64. No puedo ayudar con VsCode, pero tal vez esto lo ayude a progresar o ayude a otras personas que encuentren esta pregunta mediante la búsqueda.
No es necesario que cree OpenCV usted mismo; hay binarios preempaquetados para MinGW-w64. El propósito de MSYS2 es proporcionar un shell de estilo Unix y actuar como administrador de paquetes. Si no ha usado MSYS2 antes:
- Instale MSYS2 y actualice a la última versión como se muestra aquí.
- Abra un shell MSYS2 / mingw64 (no un shell MSYS2 / msys2). Los binarios construidos en este shell se ejecutarán como binarios de Windows independientes, no dependen del entorno MSYS2.
- Prueba eso
g++
obras.
Entonces puedes agregar OpenCV:
pacman -Ss mingw64/mingw-w64-x86_64-opencv
y todo está listo para funcionar. Compilé su programa de muestra usando el siguiente comando en el shell MSYS2:
g++ -o main main.cpp -std=c++17 -lopencv_core -lopencv_highgui -lopencv_imgcodecs -lopencv_imgproc
y ejecutó el programa con éxito.
Tenga en cuenta que no es necesario utilizar MSYS2 para el entorno de compilación; puedes invocar g++
desde el símbolo del sistema de Windows o desde cualquier otro IDE si configura las rutas de inclusión y biblioteca para que apunten al lugar donde el administrador de paquetes de MSYS2 instaló los encabezados y las bibliotecas. (Que esta debajo /mingw64/include/opencv*
y /mingw64/lib
, en la raíz de instalación de MSYS2).
Tengo éxito al intentar construir y ejecutar un programa C ++ con OpenCV 3.4.1 usando MinGW-w64 g ++ en Visual Studio Code en Windows 10 x64. Pero no sé si esta es realmente la forma “correcta” de hacerlo. Captura de pantalla
- Descargue e instale MinGW-w64 elija
x86_64-8.1.0-posix-seh-rt_v6-rev0
versión o más reciente http://mingw-w64.org/doku.php/start. - Abra CMD y vaya a C: luego clone este repositorio https://github.com/huihut/OpenCV-MinGW-Build y luego verifique el
OpenCV-3.4.1-x64
rama o simplemente ejecuta estogit clone https://github.com/huihut/OpenCV-MinGW-Build.git -b OpenCV-3.4.1-x64
- Agregue la carpeta bin Mingw-w64 a la ruta del sistema (para mí, la ruta es
C:Program Filesmingw-w64x86_64-8.1.0-posix-seh-rt_v6-rev0mingw64bin
) - Agregue la carpeta bin OpenCV mingw que clonó anteriormente a la ruta del sistema (para mí, la ruta es
C:OpenCV-MinGW-Buildx64mingwbin
) - Por ahora, ya puede construir un programa usando g ++ usando CMD, simplemente escriba
g++ test.cpp -IC:OpenCV-MinGW-Buildinclude -LC:OpenCV-MinGW-Buildx64mingwbin -llibopencv_calib3d341 -llibopencv_core341 -llibopencv_dnn341 -llibopencv_features2d341 -llibopencv_flann341 -llibopencv_highgui341 -llibopencv_imgcodecs341 -llibopencv_imgproc341 -llibopencv_ml341 -llibopencv_objdetect341 -llibopencv_photo341 -llibopencv_shape341 -llibopencv_stitching341 -llibopencv_superres341 -llibopencv_video341 -llibopencv_videoio341 -llibopencv_videostab341
solo cambia eltest.cpp
a su nombre de archivo .cpp. - Abra su archivo .cpp usando Visual Studio Code y luego instale la extensión Code Runner https://marketplace.visualstudio.com/items?itemName=formulahendry.code-runner, yo uso Code Runner para ejecutar fácilmente mi programa.
- prensa
Ctrl + comma
en Visual Studio Code y luego busque"code-runner.executorMap":
y cambiar el contenido en"cpp:"
entrada a"cd $dir && g++ $fileName -o $fileNameWithoutExt -IC:/OpenCV-MinGW-Build/include -LC:/OpenCV-MinGW-Build/x64/mingw/bin -llibopencv_calib3d341 -llibopencv_core341 -llibopencv_dnn341 -llibopencv_features2d341 -llibopencv_flann341 -llibopencv_highgui341 -llibopencv_imgcodecs341 -llibopencv_imgproc341 -llibopencv_ml341 -llibopencv_objdetect341 -llibopencv_photo341 -llibopencv_shape341 -llibopencv_stitching341 -llibopencv_superres341 -llibopencv_video341 -llibopencv_videoio341 -llibopencv_videostab341 && $dir$fileNameWithoutExt",
puede aplicar esto para la configuración del usuario o solo para la configuración del espacio de trabajo. ‘ - Después de eso, solo presiona
Ctrl+Alt+N
para construir y ejecutar su programa o simplemente presione el botón de reproducción.
Creo que también puede aplicar esto a la tasks.json
agregando el -IC:OpenCV-MinGW-Buildinclude ..
al args
parte para usar la depuración de la extensión de Visual Studio Code C / C ++. También puedes agregar "C:/OpenCV-MinGW-Build/include"
al c_cpp_properties.json
incluir ruta para habilitar intellisense. Si desea utilizar otra versión de OpenCV, simplemente reemplace todos los “341” parte del argumento g ++ a otra versión, por ejemplo, para usar OpenCV 3.3.1 use -llibopencv_calib3d331
etcétera.
EDITAR: He intentado editar mi tasks.json
y launch.json
y funciona con depurador gdb.
tasks.json
: https://gist.github.com/agtbaskara/4a2ec9a3a9a963069e719c0477185321
launch.json
: https://gist.github.com/agtbaskara/de04db8b6a31522dd1e62c43aa6e0f89
c_cpp_properties.json
: https://gist.github.com/agtbaskara/0eb773ac3085557baf7bf20b031fb49e