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 :

Problème de link d'une librairie ".lib"


Sujet :

C++

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 12
    Points : 9
    Points
    9
    Par défaut Problème de link d'une librairie ".lib"
    Bonjour, je viens à vous pour soliciter votre regard et vos compétences, parce que je vous avoue que je tourne en rond depuis une bonne semaine sur ce problème.

    Mon code permet de récupérer le nom de l'OS de l'ordinateur, via le protocole SNMP. Pour ce faire, j'ai utilisé l'API : SNMP++.

    Je dev sous Windows 7 édition familiale avec QtCreator.

    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
     
     
    #include <QtCore/QCoreApplication>
     
    #define SYSDESCR "1.3.6.1.2.1.1.1.0" //Définit l'adresse dans la MIB de l'info que je cherche
     
    #include <iostream>
    #include <windows.h>
     
    /*------------------------LIBRAIRIE PROPRE A SNMP++--------------*/
    #include <snmp_pp.h>
    #include <snmp.h>
    #include <oid.h>
    #include <vb.h>
    #include <target.h>
    #include <pdu.h>
    #include <address.h>
    /*-----------------------------------------------------------------*/
    using namespace std;
     
    /*---------------------------DECLARATION-------------------------*/
    void get_system_descriptor()
    {
        int status;
        CTarget ctarget((IpAddress) "10.4.8.5");
        Vb vb (SYSDESCR);
        Pdu pdu;
    /*-----------------------------------------------------------------*/
     
     
     
    /*-----------------CREATION DE LA SESSION SNMP-----------------*/
    Snmp snmp(status);
     
    if (status != SNMP_CLASS_SUCCESS)
    {
        cout << snmp.error_msg (status);
        return;
    }
    /*----------------------------------------------------------------*/
     
     
     
    /*---------------------------REQUETE----------------------------*/
    pdu += vb;
     
    if ((status = snmp.get (pdu, ctarget)) != SNMP_CLASS_SUCCESS)
        cout << snmp.error_msg (status);
    else
    {
        pdu.get_vb (vb, 0);
        cout << "System Descriptor = "<< vb.get_printable_value();
    }
    /*----------------------------------------------------------------*/
     
     
    //INT MAIN EN COMMENTAIRE PARCE CE QUE JE NE SAIS PAS QUOI EN FAIRE //!!!!
    /*int main(int argc, char *argv[])
    {
     
        QCoreApplication a(argc, argv);
     
        return a.exec();
    }*/
    }
    J'ai inclus ceci dans le fichier .pro :

    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
    #-------------------------------------------------
    #
    # Project created by QtCreator 2013-02-04T10:05:52
    #
    #-------------------------------------------------
     
    QT       += core
     
    QT       -= gui
     
    TARGET = snmp
    CONFIG   += console
    CONFIG   -= app_bundle
    CONFIG += stl
     
    TEMPLATE = app
     
    win32:INCLUDEPATH += $$quote(T:/Projet BTS IRIS/CD SNMP/snmp++/binaries/win32/include)
     
    win32:LIBS += $$quote(T:/Projet BTS IRIS/CD SNMP/snmp++/binaries/win32/release/snmp_pp.lib)
     
    SOURCES += main.cpp
    Et donc le fameux problème que je rencontre est à la compilation, voici le message d'erreur que j'obtiens :



    Merci mille fois pour toutes les indications que vous pourriez m'apporter !

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 382
    Points : 41 589
    Points
    41 589
    Par défaut
    En gros, ton problème c'est qu'un des headers de SNMP++ cherche à include le vieux header C++ <iostream.h>, qui n'existe plus (il a été remplaçé par <iostream> tout court).

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 12
    Points : 9
    Points
    9
    Par défaut
    Oui effectivement, entre temps j'ai pu mettre le doigt sur l'appel vers iostream.h, que bien sur je n'ai pas trouvé en une semaine... Mais mon problème se corse encore plus puisque je pensais avoir bien fait l'appel de la librairie dans le .pro, mais maintenant à la compilation il apparaît que mon programme ne trouve pas les méthodes associées au .h.

    Je dispose des fichers d'en tête en ".h", d'un fichier ".lib" et d'une ".dll". Corrigez moi si je me trompe, mais les .h et le .lib sont nécessaire pour la compilation, puis le ".dll" pour l’exécution ?

    Voila ce que j'obtiens en compilant :



    L'inclusion de ma librairie se fait comme suit dans le .pro :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    win32:INCLUDEPATH += $$quote(T:/Projet BTS IRIS/CD SNMP/snmp++/binaries/win32/include)
     
    win32:LIBS += $$quote(T:/Projet BTS IRIS/CD SNMP/snmp++/binaries/win32/release/snmp_pp.lib)
    J'ai aussi essayé ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    win32:INCLUDEPATH += $$quote(T:/Projet BTS IRIS/CD SNMP/snmp++/binaries/win32/include)
     
    LIBS += -lsnmp_pp
    LIBS += -L"T:/Projet BTS IRIS/CD SNMP/snmp++/binaries/win32/release"
    Et cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    INCLUDEPATH += "T:/Projet BTS IRIS/CD SNMP/snmp++/binaries/win32/include"
     
    LIBS += "T:/Projet BTS IRIS/CD SNMP/snmp++/binaries/win32/release/snmp_pp.lib"
    LIBS += -L"T:/Projet BTS IRIS/CD SNMP/snmp++/binaries/win32/release" \
                  -lsnmp_pp
    Merci pour votre patience !

  4. #4
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 382
    Points : 41 589
    Points
    41 589
    Par défaut
    Je ne sais plus si MinGW accepte les .lib (ou quelle version de MinGW les accepte).

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 921
    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 921
    Points : 220 492
    Points
    220 492
    Billets dans le blog
    127
    Par défaut
    Bonjour,

    Citation Envoyé par Médinoc Voir le message
    Je ne sais plus si MinGW accepte les .lib (ou quelle version de MinGW les accepte).
    En effet, de mémoire, MinGW n'accepte que des .a.

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 12
    Points : 9
    Points
    9
    Par défaut
    Oh ! D'accord, génial je ne savais pas de tout ! Premier point d’éclaircissement, merci les amis

Discussions similaires

  1. Problème de link avec une fonction ami
    Par saamreivax dans le forum C++
    Réponses: 4
    Dernier message: 28/04/2008, 22h20
  2. Problème de link à la compilaion => Librairie glm.h
    Par Pitu45 dans le forum Autres éditeurs
    Réponses: 0
    Dernier message: 22/03/2008, 22h35
  3. Réponses: 1
    Dernier message: 31/01/2008, 17h55

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