PB : Coder avec opencv :-/

Résolu/Fermé
Stouf - 7 janv. 2017 à 00:45
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 - 26 janv. 2017 à 16:48
Bonjour,
Je n'ai pas travailler pendant 3 ans (pb de santé) et là je remets le nez dans la programmation et je cherche à coder avec openCV ! Je n't arrive pas :
J'ai installer codeblocks avec minGW comme compilo, ça fonctionne :-)
Ensuite, je cherche a utiliser openCV ! Je le télécharge et le décompresse, puis il faut créer les librairies openCV pour minGW, j'ai suivi un tuto pour faire tout ça (http://turrier.fr/articles/programmer-avec-codeblocks-et-opencv/programmer-avec-codeblocks-et-opencv.php),
ça télécharge cMake, joue avec make, minGW et openCV pour créer les librairies (moins long que les 45min excomptées), me fait ajouter des variables d'environnement, m'explique comment configurer le projet (lib, includes) mais je n'arrive pas à compiler :

Il ne connait pas les fonctions d'openCV :-/ et je ne comprends pas pourquoi !

Code

#include "opencv2/highgui/highgui.hpp"
#include "opencv2/core/core.hpp"
#include <iostream>

using namespace cv;
using namespace std;

int main(int argc, const char** argv){
    Mat img=imread("C:Users\Alan\Dropbox\Emplois\Evaluation post accident\test\test\lena.png",CV_LOAD_IMAGE_UNCHANGED);
    if (img.empty()){
        cout<<"Error : Image cannot be loaded..!!"<<endl;
        return (-1);
        }
    namedWindow("MyWindow",CV_WINDOW_AUTOSIZE);
    imshow("MyWindow",img);
    waitKey(0);
    destroyWindow("MyWindow");
    return (0);
}


erreurs : (pour toutes les fonctions utilisées; il les connait pas !)

undefined reference to `cv::imread(std::string const&, int)


Pour moi l'erreur vient de la génération des librairies par cmake, comment s'en assurer ? y remédier ?

Merci beaucoup





1 réponse

[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
26 janv. 2017 à 09:10
Bonjour Stouf,

Cette erreur "undefined reference" est produite par le linker, qui n'arrive pas à trouver les éléments de la bibliothèque compilée (fichiers avec extension .a) définissant cette référence.

Ce problème peut venir de plusieurs causes :

- ta compilation a échoué en tout ou partie (tu aurais dû avoir des messages d'erreur)
- tu n'as pas ajouté aux paramètres de Codeblocks les fichiers .a résultant de la compilation

Vois aussi cette doc, qui explique en détails comme paramétrer Codeblocks pour utiliser une bibliothèque compilée pour MinGW :

https://forums.commentcamarche.net/forum/affich-37594493-codeblocks-installer-une-bibliotheque-librairie


Dal
0
Merci de ta réponse, mais étant bloqué, j'ai continué à chercher ! Et en effet j’avais eu des erreurs pendant le make générant les bibliothèques ! J'ai du coup pu télécharger toutes les librairies déjà générées et les ajouter et aujourd'hui, ça marche !

Merci tout de même ;-)
0
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
26 janv. 2017 à 16:48
Pas de pb, content que cela fonctionne désormais.

Il est effectivement plus simple de se procurer des binaires compilés pour MinGW, plutôt que de compiler soi même :-)
0