IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

Erreur de lieur avec la librairie OpenCV


Sujet :

C++Builder

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    216
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2007
    Messages : 216
    Par défaut Erreur de lieur avec la librairie OpenCV
    Bonjour,

    J'ai besoin d'utiliser la librairie OpenCV. J'utilise BCB 6.0.
    J'ai ajouté les liens vers OpenCV dans les include Path et library Path.

    Cependant lorsque j'essaie de lancer le simple programme ci-dessous (j'ai bien ajouter les include cv.h et highgui.h en entête)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
     
    void __fastcall TASL::Button1Click(TObject *Sender)
    {
     
        //On déclare "un pointeur vers une structure IplImage" :
        //En gros, on "déclare une image".
        IplImage *img;
     
        //On charge notre image depuis un fichier.
        img=cvLoadImage("C:\Users\Public\Pictures\Sample Pictures\Arbres.jpg");
     
        //On crée une fenêtre intitulée "Hello World",
        //La taille de cette fenêtre s'adapte à ce qu'elle contient.
        cvNamedWindow("Hello World", CV_WINDOW_AUTOSIZE);
     
        //On affiche l'image dans la fenêtre "Hello World".
        cvShowImage("Hello World", img);
     
        //On attend que l'utilisateur appuie sur une touche (0 = indéfiniment).
        cvWaitKey(0);
     
        //Destruction de la fenêtre.
        cvDestroyWindow("Hello World");
     
        //Libération de l'IplImage (on lui passe un IplImage**).
        cvReleaseImage(&img);
     
    }
    j'obtiens les erreurs suivantes

    [Linker Error] Unresolved external '_cvLoadImage' referenced from C:\USERS\PASCAL\CODE\SDIMAIN.OBJ
    [Linker Error] Unresolved external '_cvNamedWindow' referenced from C:\USERS\PASCAL\CODE\SDIMAIN.OBJ
    [Linker Error] Unresolved external '_cvShowImage' referenced from C:\USERS\PASCAL\CODE\SDIMAIN.OBJ
    [Linker Error] Unresolved external '_cvWaitKey' referenced from C:\USERS\PASCAL\CODE\SDIMAIN.OBJ
    [Linker Error] Unresolved external '_cvDestroyWindow' referenced from C:\USERS\PASCAL\CODE\SDIMAIN.OBJ
    [Linker Error] Unresolved external '_cvReleaseImage' referenced from C:\USERS\PASCAL\CODE\SDIMAIN.OBJ


    J'ai ensuite essayer de copier les DLL contenues dans le répertoire BIN de OpenCV dans mon répertoire contenant le projet, mais ça n'a rien changé.

    Qu'ai-je oublié de faire ?
    merci d'avance

  2. #2
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 46
    Par défaut erreur de lieur open cv
    bonjour monsieur,
    je croit que t'a un probleme avec la version de dll de opencv, et pour cela ,ouvre l'invite de commande ,puis allez vers le fichier bin de borland6,vous trouvez un fichier coff2oem, c'est avec ce fichier que vous convertissez les fichier dll de opencv existantes vers les fichier conforme puis ajoutez ces derniers a votre bcb6 , dans l'invite de commande tapez :
    "coff2oem /?" pour savoir comment convertir et bonne chance .

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    216
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2007
    Messages : 216
    Par défaut
    Quelques précisions:

    Voici comment j'ai rajouter les .h et les lib dans mon projet.



    Le problème pourrait il venir du fait que j'utilise VISTA?

    J'ai aussi rajouter le chemin d'OpenCV dans les variables systèmes.
    Images attachées Images attachées   

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    216
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2007
    Messages : 216
    Par défaut
    Merci de ta réponse tmooth!

    J'ai tout d'abord essayé de convertir directement les librairies en copiant

    cv.lib, cvaux.lib, highgui.lib, cvcam.lib, cxcore.lib

    dans le repertoire bin de borland, puis en appelant la fonction coff2oem dans l'invité de commande de la façon suivante:

    coff2oem cv.lib cv_bcb.lib

    mais rien ne se passait. J'ai alors copier les libs et coff2oem dans un répertoire placé plus haut que Program Files et là ça a marché (vive VISTA).

    J'ai ensuite copier les nouvelles librairies générées par coff2oem (cv_bcb.lib, cvaux_bcb.lib, highgui_bcb.lib,...) dans un nouveau répertoire dans OpenCV que j'ai appelé lib_bcb. Dans mon projet sur BCB j'ai ensuite linker les libs vers ce nouveau dossier.

    Mais lorsque j'ai recompilé j'obtiens toujours les mêmes erreur de lieurs.

    Une autre idée?

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    216
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2007
    Messages : 216
    Par défaut
    Peut être le problème vient d'une mauvais conversion avec coff2oem?
    Pour la conversion je fais dans l'invité de commande:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    coff2omf.exe cv.lib cv_bcb.lib
    et j'ai un nouveau fichier cv_bcb.lib qui est crée. Cependant, j'ai remarqué que la taille du fichier est bien plus petite. Est-ce normal?

    Peut être dois-je être plus précis quand aux options de coff2omf?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Syntax:   COFF2OMF [options] InputFile OutputFile
      -h, -?  Display help
      -q      Quiet mode
      -v      Verbose mode
      -r      Remove (delete) output file if empty
      -lib:xx Specify options for OMF import library generation:
           ms - Allow entries that have MS C++ name mangling (default: n
           st - Normalize names instead of aliasing MS stdcall mangling
           ca - Don't perform MS cdecl aliasing (default is to alias)
    Je stock ensuite ces nouvelles librairies (cv_bcb.lib, cvaux_bcb.lib, cvcam_bcb.lib, cxcore_bcb.lib et highgui_bcb.lib) dans un dossier lib_bcb et je link vers le dossier depuis mon projet (dans les directories options).

    Toute autre idée, remarque est bienvenue...

  6. #6
    Expert confirmé

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Par défaut
    Salut,
    je me trompe peut être mais il ne me semble pas que ce soit un probleme de lib coff, car il me semblais que pour les lib coff il y avait un message d'erreur spécifique du compilateur

Discussions similaires

  1. Erreur LNK2019 avec VS2010 et OpenCV 2.4
    Par Biloy dans le forum OpenCV
    Réponses: 7
    Dernier message: 06/01/2013, 15h09
  2. Réponses: 4
    Dernier message: 03/02/2012, 18h49
  3. Problème exécution avec librairie OpenCV
    Par RedDrak dans le forum NetBeans
    Réponses: 1
    Dernier message: 06/06/2011, 14h58
  4. debutant: erreur LNK2001 avec la librairie GSL
    Par drill3 dans le forum MFC
    Réponses: 6
    Dernier message: 25/04/2005, 13h58
  5. Erreur de sgmentation avec malloc
    Par simonm dans le forum C
    Réponses: 5
    Dernier message: 27/02/2003, 08h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo