1
votes

C ++: Comment installer OpenCV avec le compilateur MinGW 9.2.0 sous Windows 10

Il y a quelques jours, j'essaye d'installer opencv en utilisant Dev-Cpp et Windows 10, j'ajoute les répertoires des fichiers .h, .lib et .dll au Dev-Cpp, mais quand je compile le code, je donne toujours moi la même erreur.

Dans les options du compilateur, j'ajoute les répertoires suivants:

-C ++ Headers--

C: \ Users \ admin \ Downloads \ opencv \ build \ include

-Bibliothèques-

C: \ Users \ admin \ Downloads \ opencv \ build \ x64 \ vc15 \ lib

-Fichiers binaires-

C: \ Users \ admin \ Downloads \ opencv \ build \ x64 \ vc15 \ bin

- Code-

c:\mingw\mingw32\bin\ld.exe C:\Users\admin\AppData\Local\Temp\cciHfDkS.o:main.cpp:(.text+0x62): undefined reference to `cv::imread(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)'
c:\mingw\mingw32\bin\ld.exe C:\Users\admin\AppData\Local\Temp\cciHfDkS.o:main.cpp:(.text$_ZN2cv3MatD1Ev[__ZN2cv3MatD1Ev]+0x2d): undefined reference to `cv::fastFree(void*)'
c:\mingw\mingw32\bin\ld.exe C:\Users\admin\AppData\Local\Temp\cciHfDkS.o:main.cpp:(.text$_ZN2cv3Mat7releaseEv[__ZN2cv3Mat7releaseEv]+0x40): undefined reference to `cv::Mat::deallocate()'
c:\mingw\mingw32\bin\ld.exe C:\Users\admin\AppData\Local\Temp\cciHfDkS.o:main.cpp:(.text$_ZN2cv3MataSEOS0_[__ZN2cv3MataSEOS0_]+0xb4): undefined reference to `cv::fastFree(void*)'
C:\Users\admin\Desktop\Programacion\collect2.exe    [Error] ld returned 1 exit status

-Erreurs-

#include <iostream>
#include <opencv2/imgcodecs.hpp>

int main(){
    cv::Mat img;
    img = cv::imread("Goten.jpg");
    return 0;
}

J'ai installé MinGW 9.2.0, j'ai essayé de le compiler avec les standards C ++ 11, C ++ 14 et C ++ 17

Que puis-je faire pour corriger cette erreur? - Désolé pour mon anglais


1 commentaires

Dev-C ++ n'a pas été mis à jour depuis plus de 5 ans. Faites-vous une faveur et passez à un autre IDE.


3 Réponses :


0
votes

vcpkg sur Windows nécessite-t-il VisualStudio ou fonctionne-t-il également avec MinGW? (Faire une recherche Google très rapide semble montrer que cela pourrait fonctionner.) Parce que depuis que j'ai découvert vcpkg , je dois admettre que je ne retournerais jamais à installer et à construire des choses à l'ancienne.

Maintenant, pour obtenir à peu près tout sur Windows, je clonerais le dépôt vcpkg , exécutais le script d'amorçage, puis exécutez vcpkg.exe install opencv .


1 commentaires

cela me donne une erreur car j'utilise dev-cpp et non Visual Studio



3
votes

Ce sont des erreurs de l'éditeur de liens: cela signifie que le compilateur ne peut pas trouver le code binaire pour ces fonctions.

En d'autres termes, vous avez peut-être oublié de spécifier quelques bibliothèques OpenCV. Si je ne me trompe pas, imread () réside dans opencv_imgcodecs .


0 commentaires

0
votes

Pensez à utiliser un bon éditeur de code source (peut-être GNU emacs ) et compilez sur le ligne de commande (par exemple en utilisant un outil d'automatisation de construction tel que GNU make ou ninja ) dans un émulateur de terminal.

Alors MinGW est en fait une commande avec g ++ ou g++.exe

Il vous suffit ensuite de télécharger le code source de OpenCV et de le compiler dans certains émulateur de terminal. Ou encore mieux, obtenez le code source de github . La compilation d'OpenCV à partir du code source peut durer une dizaine de minutes ou une heure de temps informatique /

BTW, si vous êtes vraiment intéressé par la programmation d'OpenCV, je vous recommande d'installer une distribution Linux (par exemple Debian ). La plupart des systèmes GNU / Linux ont une véritable et récente GCC , pas seulement une émulation de GCC appelée MinGW.


0 commentaires