Précédent   Forum du club des développeurs et IT Pro > Général Développement > Programmation système > Linux
Linux Forum d'entraide sur la programmation Linux : shell, système, ...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 14/12/2012, 23h57   #1
mimya1
Invité régulier
 
Femme amina dida
Étudiant
Inscription : novembre 2011
Messages : 17
Détails du profil
Informations personnelles :
Nom : Femme amina dida
Localisation : Algérie

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

Informations forums :
Inscription : novembre 2011
Messages : 17
Points : 9
Points : 9
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 :
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
mimya1 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 15/12/2012, 11h59   #2
LittleWhite
Responsable 2D/3D/Jeux


 
Avatar de LittleWhite
 
Homme Alexandre Laurent
Ingénieur développement logiciels
Inscription : mai 2008
Messages : 10 467
Détails du profil
Informations personnelles :
Nom : Homme Alexandre Laurent
Localisation : France

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

Informations forums :
Inscription : mai 2008
Messages : 10 467
Points : 40 543
Points : 40 543
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 '`'.
__________________
Vous souhaitez participer à la rubrique 2D / 3D / Jeux ? Contactez-moi
La rubrique a aussi un blog !

Ma page sur DVP
Mon Portfolio

Qui connaît l'erreur, connaît la solution.
LittleWhite est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 15/12/2012, 18h31   #3
mimya1
Invité régulier
 
Femme amina dida
Étudiant
Inscription : novembre 2011
Messages : 17
Détails du profil
Informations personnelles :
Nom : Femme amina dida
Localisation : Algérie

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

Informations forums :
Inscription : novembre 2011
Messages : 17
Points : 9
Points : 9
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)
mimya1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2012, 19h24   #4
LittleWhite
Responsable 2D/3D/Jeux


 
Avatar de LittleWhite
 
Homme Alexandre Laurent
Ingénieur développement logiciels
Inscription : mai 2008
Messages : 10 467
Détails du profil
Informations personnelles :
Nom : Homme Alexandre Laurent
Localisation : France

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

Informations forums :
Inscription : mai 2008
Messages : 10 467
Points : 40 543
Points : 40 543
Alors, c'est que vous n'avez pas demander aux autotools de rajouter la bibliothèque.
__________________
Vous souhaitez participer à la rubrique 2D / 3D / Jeux ? Contactez-moi
La rubrique a aussi un blog !

Ma page sur DVP
Mon Portfolio

Qui connaît l'erreur, connaît la solution.
LittleWhite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2012, 20h11   #5
mimya1
Invité régulier
 
Femme amina dida
Étudiant
Inscription : novembre 2011
Messages : 17
Détails du profil
Informations personnelles :
Nom : Femme amina dida
Localisation : Algérie

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

Informations forums :
Inscription : novembre 2011
Messages : 17
Points : 9
Points : 9
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)
mimya1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2012, 22h28   #6
LittleWhite
Responsable 2D/3D/Jeux


 
Avatar de LittleWhite
 
Homme Alexandre Laurent
Ingénieur développement logiciels
Inscription : mai 2008
Messages : 10 467
Détails du profil
Informations personnelles :
Nom : Homme Alexandre Laurent
Localisation : France

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

Informations forums :
Inscription : mai 2008
Messages : 10 467
Points : 40 543
Points : 40 543
Cela ne suffit pas, il faut spécifier au compilateur qu'il doit utiliser le .so de OpenCV.
__________________
Vous souhaitez participer à la rubrique 2D / 3D / Jeux ? Contactez-moi
La rubrique a aussi un blog !

Ma page sur DVP
Mon Portfolio

Qui connaît l'erreur, connaît la solution.
LittleWhite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2012, 13h42   #7
mimya1
Invité régulier
 
Femme amina dida
Étudiant
Inscription : novembre 2011
Messages : 17
Détails du profil
Informations personnelles :
Nom : Femme amina dida
Localisation : Algérie

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

Informations forums :
Inscription : novembre 2011
Messages : 17
Points : 9
Points : 9
Je le fais avec g++n mais je ne sais pas comment le faire avec make, tu n'auras pas une idée?
mimya1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2012, 13h45   #8
LittleWhite
Responsable 2D/3D/Jeux


 
Avatar de LittleWhite
 
Homme Alexandre Laurent
Ingénieur développement logiciels
Inscription : mai 2008
Messages : 10 467
Détails du profil
Informations personnelles :
Nom : Homme Alexandre Laurent
Localisation : France

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

Informations forums :
Inscription : mai 2008
Messages : 10 467
Points : 40 543
Points : 40 543
A priori, vous utilisez autotools : http://www-igm.univ-mlv.fr/~dr/XPOSE/Breugnot/ (qui lui génère le makefile)
__________________
Vous souhaitez participer à la rubrique 2D / 3D / Jeux ? Contactez-moi
La rubrique a aussi un blog !

Ma page sur DVP
Mon Portfolio

Qui connaît l'erreur, connaît la solution.
LittleWhite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2012, 18h34   #9
mimya1
Invité régulier
 
Femme amina dida
Étudiant
Inscription : novembre 2011
Messages : 17
Détails du profil
Informations personnelles :
Nom : Femme amina dida
Localisation : Algérie

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

Informations forums :
Inscription : novembre 2011
Messages : 17
Points : 9
Points : 9
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).
mimya1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2012, 17h59   #10
mimya1
Invité régulier
 
Femme amina dida
Étudiant
Inscription : novembre 2011
Messages : 17
Détails du profil
Informations personnelles :
Nom : Femme amina dida
Localisation : Algérie

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

Informations forums :
Inscription : novembre 2011
Messages : 17
Points : 9
Points : 9
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
mimya1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 05h07.


 
 
 
 
Partenaires

Hébergement Web