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++ Discussion :

Probleme de compilation (undefined reference to)


Sujet :

C++

  1. #1
    Membre du Club Avatar de Verbalinsurection
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Septembre 2007
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2007
    Messages : 127
    Points : 45
    Points
    45
    Par défaut Probleme de compilation (undefined reference to)
    Bonjour à tous!
    Je suis en train de developper un logiciel pour récuperer le numéro de série et quelques autre informations sur des postes DELL dans le cadre d'une gestion de parc pour ma boite.
    Sur le site du constructeur, ils proposent une librairie SMBIOS (liens vers les sources).

    J'ai inclu mes fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #include <smbios\SystemInfo.h>
    Puis j'essaie de récuperer le service tag :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    using namespace std;
    int main()
    {
       int sys_id;
       sys_id = SMBIOSGetDellSystemId();
       return 0;
    }
    Puis je compile, et là, c'est le drame... :

    .objs\main.o:main.cpp: (.text+0x12b): undefined reference to `SMBIOSGetDellSystemId'
    collect2: ld returned 1 exit status
    Et voila, je code avec "CODE::BLOCKS" et je compile avec GNU GCC Compiler.
    J'ai regardé un peu partout sur les sites et ce qui ressort le plus avec cette erreur c'est que les librairies ne sont pas linké, mais il n'y a aucun fichier lib fournit avec la librairie. On m'as dis de compiler la librairie, mais impossible, je n'y arrive pas sous code blocks...

    J'espère que vous pourrez m'aider car c'est très important pour moi.

    Merci à tous

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    S'il n'y a aucun fichier bibliothèque fourni, tu n'as pas d'autre choix que de recompiler la bibliothèque. Quels problème rencontres-tu ?

  3. #3
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 627
    Points : 30 692
    Points
    30 692
    Par défaut
    Salut,

    Le plus souvent, une erreur du type undefined reference to <quelque chose> indique que l'éditeur de liens n'a pas pu trouver à quoi raccrocher le (quelque chose).

    Dans ton cas, c'est sans doute parce que tu n'a pas indiqué qu'il fallait effectuer la liaison des données avec la bibliothèque utilisée

    Sous C::B, tu dois aller dans le menu projects->build options.
    • Dans l'onglet Search directories, sous onglet linker, vérifie que le chemin vers le dossier dans lequel se trouve la bibliothèque est bien indiqué et
    • Dans l'onglet linker settings, vérifie que tu as bien demandé de lier la bibliothèque requise


    En cas de compilation en ligne de commande, il faut passer les paramètres -Ldossier/outrouver/lalib -lnomdelalib (sans le "lib" ni le ".a")

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    865
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 865
    Points : 1 069
    Points
    1 069
    Par défaut
    Dans le répertoire build/VC.2005/, tu as une solution (libsmbios-minimal.sln) pour générer la librairie avec Visual Studio (2005 à priori).

    Connais-tu Cygwin ou MinGW ? La librairie se compile aussi avec le classique ./configure ; make ; make install dans un shell. Un rapide tour des sources ne me dit si le code a été testé sous Cygwin ou MinGW.

    Ils ne fournissent pas directement les binaires sur le site de DELL (librairies et headers) ? C'est assez classique sous Windows.

    EDIT: tu as vu le lien que tu proposes. Ils commencent par linux. Tu dois probablement pouvoir trouver les binaires pour Windows sur le site sans avoir à compiler la librairie.

    Pour Cygwin et MinGW, il faut croire que non. http://linux.dell.com/libsmbios/main...ation_win.html

  5. #5
    Membre du Club Avatar de Verbalinsurection
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Septembre 2007
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2007
    Messages : 127
    Points : 45
    Points
    45
    Par défaut
    Merci pour vos réponse.
    Il n'y a pas de lib directement fourni avec les sources.
    Cette librairie est sur le site de linux dell car il n'y a que là qu'on le trouve mais pourtant il parle de compilateur gcc dans le dossier "libsmbios-0.13.10\include\smbios\config\compiler".
    J'ai un peu de mal à comprendre tout ça alors je compte sur vous

    Merci encore...

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    865
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 865
    Points : 1 069
    Points
    1 069
    Par défaut
    Cette librairie a été compilée et testée pour gcc sous Linux et pour Visual sous Visual C++.

    Le seul compilateur testé sous Windows est celui de Visual. Rien ne te garantit donc que la compilation passe sous Windows avec gcc.

    Cygwin et MinGW permettent de compiler avec gcc sous Windows tout en profitant du script configure et des Makefiles (qui ont été générés avec les Autotools). En effet, le script configure est écrit en sh, il te faut donc au minimum un shell pour pouvoir lancer ce script de configuration et la compilation. Ce shell est fournit avec Cygwin ou l'environnement minimaliste de développement associé à MinGW, MSYS. Toutefois, rien ne dit que cette librairie a été testée sous Cygwin et MinGW. Il faut même croire que non.

    Si tu veux suivre la logique voulue par Dell, compile les sources avec Visual Studio. Ce sera le plus simple et garantie de succés.

  7. #7
    Membre du Club Avatar de Verbalinsurection
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Septembre 2007
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2007
    Messages : 127
    Points : 45
    Points
    45
    Par défaut
    Oui mais on m'as dis que si je la compilais sous vc2005 je ne pourrait pas l'utilisé avec code blocks.
    J'ai quand meme essayé de la compilé sous vc mais pas mal d'erreur, quelques une que j'ai pus résoudre mais des problèmes de linker...
    Une ame génreuse pour me la compiler???

    Merc

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    865
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 865
    Points : 1 069
    Points
    1 069
    Par défaut
    Citation Envoyé par Verbalinsurection Voir le message
    Oui mais on m'as dis que si je la compilais sous vc2005 je ne pourrait pas l'utilisé avec code blocks.
    J'ai quand meme essayé de la compilé sous vc mais pas mal d'erreur, quelques une que j'ai pus résoudre mais des problèmes de linker...
    Une ame génreuse pour me la compiler???

    Merc
    La version de gcc utilisée par défaut avec Code::Blocks, c'est celle de MinGW ?

    Dans ce cas, ça marche, en théorie. Je n'ai toujours fait que dans l'autre sens mais puisque le vice marche, le versa doit aussi marcher.
    http://www.mingw.org/mingwfaq.shtml#faq-msvcdll

    Problèmes de linker sans rien de plus... pas d'aide possible.

  9. #9
    Membre du Club Avatar de Verbalinsurection
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Septembre 2007
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2007
    Messages : 127
    Points : 45
    Points
    45
    Par défaut
    Eu......
    Donc si je la compile sous visual c je pourrait l'utiliser avec ming.
    Oui c'est bien ming qui est sur code blocks.
    Mais je n'arrive pas à la compiler sous visual c.
    Personne ne peut la compiler et m'envoyer le resultat.....?

    Merci encore....

  10. #10
    Membre du Club Avatar de Verbalinsurection
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Septembre 2007
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2007
    Messages : 127
    Points : 45
    Points
    45
    Par défaut
    up

Discussions similaires

  1. Erreur de compilation "undefined reference"
    Par aljekeny dans le forum Débuter
    Réponses: 14
    Dernier message: 06/01/2009, 11h14
  2. [compilation] undefined reference to
    Par Deallyra dans le forum Débuter
    Réponses: 6
    Dernier message: 13/11/2008, 11h41
  3. problème de compilation "undefined reference to"
    Par grabriel dans le forum Code::Blocks
    Réponses: 0
    Dernier message: 05/05/2008, 12h08
  4. [Compilation] undefined reference
    Par Valkirion dans le forum C++
    Réponses: 1
    Dernier message: 13/07/2007, 18h03
  5. Erreur compilation "undefined reference to "
    Par ViRouF dans le forum C++
    Réponses: 5
    Dernier message: 02/03/2007, 14h55

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