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

Linux Discussion :

Undefined reference to 'cv::function_name' sous ubuntu 11.10 avec openCV 2.4.2


Sujet :

Linux

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 17
    Points : 18
    Points
    18
    Par défaut Undefined reference to 'cv::function_name' sous ubuntu 11.10 avec openCV 2.4.2
    Salam, Bonsoir

    J'utilise OpenCV 2.4.2 sous ubuntu 11.10 et genom 2 ( du package robotpkg développé par le laboratoire LAAS)
    J'essaye d'installer un module en utilisant make make install, dans le code du module, des fonctions de librairie OpenCV sont utilisées. À chaque référence à celles-ci j'ai l'erreur Undefined reference suivi du nom de la fonction.
    J'ai déja essayé OpenCV avec des programmes simples. Je compilait avec la commande

    g++ `pkg-config --cflags opencv` my_code.cpp -o my_code `pkg-config --libs opencv

    et ça fonctionne correctement.

    L'enête du programme contient:

    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
    #include <portLib.h>
     
    #include "server/targdetHeader.h"
    #include <portLib.h>
    #include <cv.h>
    #include <highgui.h>
     
    #include "/home/amina/src/openrobots/include/opencv2/imgproc/imgproc.hpp"
    #include "/home/amina/src/openrobots/include/opencv2/objdetect/objdetect.hpp"
    #include "/home/amina/src/openrobots/include/opencv2/highgui/highgui.hpp"
     
    #include <stdio.h>
    #include <h2timeLib.h>
    #include <time.h>
    #include <iostream>
    #include <fstream>
    #include <string>
     
    #include <viam/viamStruct.h>
    les variables PATH, PKGCONFIG et LD_LIBRARY_PATH sont normalement bien configuré dans les fichiers .bashrc et /etc/bash.bashrc

    Toute indication est la bienvenue, merci d'avance

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 897
    Points : 219 633
    Points
    219 633
    Billets dans le blog
    125
    Par défaut
    Bonjour,

    Citation Envoyé par mimya1 Voir le message
    g++ `pkg-config --cflags opencv` my_code.cpp -o my_code `pkg-config --libs opencv
    Il manque un '`'.

  3. #3
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 17
    Points : 18
    Points
    18
    Par défaut
    oui, c'est une erreur de copie, mais actuellement je n'utilise pas cette commande. J'essaye d'installer un module en utilisant ./configure, make et make install
    Lors de l'utilisation du make j'ai des erreurs relatives aux fonctions d'OpenCV ( undefined reference to cv::function_name)

  4. #4
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 897
    Points : 219 633
    Points
    219 633
    Billets dans le blog
    125
    Par défaut
    Alors, c'est que vous n'avez pas demander aux autotools de rajouter la bibliothèque.

  5. #5
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 17
    Points : 18
    Points
    18
    Par défaut
    Quels autotools? J'ai déjà mentionné que j'ai j'ai rajouté le chemin de la librairie dans les fichier .bashrc et bash.bashrc ( variables PKG_CONFIG, LD_LIBRARY_PATH et PATH)

  6. #6
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 897
    Points : 219 633
    Points
    219 633
    Billets dans le blog
    125
    Par défaut
    Cela ne suffit pas, il faut spécifier au compilateur qu'il doit utiliser le .so de OpenCV.

  7. #7
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 17
    Points : 18
    Points
    18
    Par défaut
    Je le fais avec g++n mais je ne sais pas comment le faire avec make, tu n'auras pas une idée?

  8. #8
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 897
    Points : 219 633
    Points
    219 633
    Billets dans le blog
    125
    Par défaut
    A priori, vous utilisez autotools : http://www-igm.univ-mlv.fr/~dr/XPOSE/Breugnot/ (qui lui génère le makefile)

  9. #9
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 17
    Points : 18
    Points
    18
    Par défaut
    Merci beaucoup pour vos réponses. Je verrai le liens tout de suite. Mais j'ai déjà les makefile ils sont générés par GenoM ( du package robotpkg, développé par le laboratoire LAAS).

  10. #10
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 17
    Points : 18
    Points
    18
    Par défaut Résolu
    Salam

    Je viens de résoudre le problème. J'ai donc pensé à partager la solution.
    La version d'OpenCV que j'ai installé manuellement est 2.4.2 dont le prefix d'installation est /usr/local/lib
    Genom a aussi installé automatiquement la version 2.4.1 d'OpenCV avec le prefix /home/amina/src/openrobots.

    Mes variables PKG_CONFIG_PATH et LD_LIBRARY_PATH contiennent les deux chemins, et le prefix donné au moment du configure était celui de genom ( pour créer les makefiles), celà crée un conflit quelque part. J'ai donc modifié mes variable PKG_CONFIG_PATH et LD_LIBRARY_PATH pour ne contenir qu'un seul chemin, celui de genom.

    Merci à vous LITTLEWHITE

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 02/09/2014, 15h28
  2. "undefined reference to" fonction sous code::blocks
    Par Lerrak dans le forum Langage
    Réponses: 4
    Dernier message: 10/06/2014, 14h35
  3. Réponses: 1
    Dernier message: 18/11/2012, 00h47
  4. "Undefined reference" avec Ubuntu 12.04
    Par morbli dans le forum Ubuntu
    Réponses: 2
    Dernier message: 02/11/2012, 12h55
  5. Réponses: 13
    Dernier message: 26/11/2010, 14h14

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