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

Discussion :

Créer et utiliser une bibliothèque

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2010
    Messages
    153
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 153
    Points : 59
    Points
    59
    Par défaut Créer et utiliser une bibliothèque
    Bonjour, je veux bien créer une bibliothèque lié statiquement à une programme à l'exécution (de la même manière que le programme est lié au dll qtCore4.dll )

    Pour cela j'ai fait des étapes suivants

    Nouveau/ Autre projet/ Bibliothèque C++

    Fichier lib.h
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    #ifndef LIB_H
    #define LIB_H
    #include "lib_global.h"
    LIBSHARED_EXPORT int add( int, int );
    #endif // LIB_H
    Fichier lib.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    #include "lib.h"
     
    int add(int a, int b)
    {
        return a + b;
    }
    Maintenant je compile en mode Debug et je vois bien le dossier lib-build-desktop créé avec le dll dans le dossier Debug

    Je crée un autre programme myApp

    Je modifie le fichier .pro
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    INCLUDEPATH += ../lib
    DEPENDPATH += ../lib-build-desktop/debug
    Maintenant je peux faire
    Dans Projets/Dependances de myApp
    Je coche lib comme le projet dépendant

    Je compile et le message d'erreur undefined reference!
    Merci de vos aides

  2. #2
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 695
    Points : 188 895
    Points
    188 895
    Par défaut


    Ce dont tu parles, c'est de linkage dynamique (les symboles sont chargés à l'exécution).

    Sinon, ce serait bien d'avoir le message d'erreur complet.

    Au pif, il faut ajouter la bibliothèque dans LIBS dans le .pro (cf. doc), la dépendance ne sert qu'à définir l'ordre de compilation des projets (si c'est comme dans VS, à tout le moins).

  3. #3
    Membre du Club
    Inscrit en
    Janvier 2010
    Messages
    153
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 153
    Points : 59
    Points
    59
    Par défaut
    Merci,
    quand j'ajoute le LIBS
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    LIBS += ../lib-build-desktop/release/lib.dll
    Ca compile mais à l'exécution si je mets le programme comme ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    int main(int argc, char *argv[])
    {
        QApplication app(argc, argv);
        int a = add(1, 2);
     
        QPushButton hello("Hello world!" + QString::number(a));
        hello.resize(100, 30);
     
        hello.show();
        return app.exec();
    }
    Le programme retourne le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Démarrage de D:\Documents\QtWorkSpace\myApp-build-desktop\debug\myApp.exe...
    D:\Documents\QtWorkSpace\myApp-build-desktop\debug\myApp.exe s'est terminé avec le code -1073741515

  4. #4
    Membre du Club
    Inscrit en
    Janvier 2010
    Messages
    153
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 153
    Points : 59
    Points
    59
    Par défaut
    En lisant le doc, je trouve que la commande LIBS c'est pour rajouter les fichiers lib et non les dll?

  5. #5
    Membre expérimenté

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2009
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 009
    Points : 1 738
    Points
    1 738
    Par défaut
    Oui. La dll, tu dois la mettre dans le path ou dans le dossier de l'exe.

  6. #6
    Membre du Club
    Inscrit en
    Janvier 2010
    Messages
    153
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 153
    Points : 59
    Points
    59
    Par défaut
    Citation Envoyé par Troudhyl Voir le message
    Oui. La dll, tu dois la mettre dans le path ou dans le dossier de l'exe.
    Merci je vais essayer ce soir!

  7. #7
    Membre du Club
    Inscrit en
    Janvier 2010
    Messages
    153
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 153
    Points : 59
    Points
    59
    Par défaut
    Merci bien ça marche!

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

Discussions similaires

  1. Réponses: 15
    Dernier message: 15/03/2010, 21h01
  2. utiliser une bibliothèque....
    Par miminou dans le forum Bibliothèques
    Réponses: 5
    Dernier message: 18/12/2005, 21h26
  3. Créer et gérer une bibliothèque d’icônes
    Par Furius dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 15/11/2005, 18h54
  4. Utiliser une bibliothèque statique
    Par djflex68 dans le forum MFC
    Réponses: 6
    Dernier message: 15/08/2005, 20h26
  5. [MFC] Comment créer et utiliser une base Access
    Par maitre hibou dans le forum MFC
    Réponses: 3
    Dernier message: 10/05/2004, 19h11

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