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

Qt Discussion :

Bibliothèques, plug-ins et édition de liens


Sujet :

Qt

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé

    Inscrit en
    Octobre 2006
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 69
    Par défaut Bibliothèques, plug-ins et édition de liens
    Bonjour,
    J'ai un problème avec le développement d'une application en C++/Qt sous Win 7(64 bits). L'application elle-même est juste un chargeur de plugins qui fournissent les fontionnalités. Le code source est structuré comme suit :
    • Un dossier libs qui contient du code générant des bibliothèques partagées internes au projet.
    • Un dossier plugins qui contient le code des différents plugins de l'application. Chaque plugin dépend de plusieurs bibliothèques du dossier libs.
    • ...

    Après compilation, les bibliothèques sont générées dans un dossier lib, les plugins dans un dossier plugins et l'exécutable dans un dossier bin.
    Vous pouvez voir le code source du projet ici.
    Depuis le début du projet, je développais sous GNU/Linux, je n'ai eu aucun problème d'éditions de liens. Mais sous Win 7 maintenant, lors de la compilation des plugins, il semble qu'ils ne puissent charger aucune de mes bibliothèques. J'ai des erreurs du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    undefined reference to ...
    Comme dit précédemment, tout marchait parfaitement sous GNU/Linux.
    Bref, j'ai exécuté Dependency Walker sur mes bibliothèques, il a indiqué qu'il manquait ieshims.dll et gpsvc.dll. J'ai trouvé le premier par contre le second bien qu'étant présent semble être en 64 bits alors que mes bibliothèques et les bibliothèques de Qt sont en 32 bits.

    J'ai besoin d'aide pour résoudre ce problème. Est-ce que cette dll manquante peut en être à l'origine ou le problème vient d'ailleurs ?

    Merci.

  2. #2
    Membre confirmé

    Inscrit en
    Octobre 2006
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 69
    Par défaut
    Apparemment, contrairement aux systèmes Unix, sous Windows on doit spécifier explicitement quelles classes sont visibles publiquement lorsqu'on crée des bibliothèques partagées.
    Je mets le code là au cas où d'autres personnes (débutantes comme moi) auront un problème similaire

    Dans un .h

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    /* library_global.h */
     
    #if defined(LIBRARY)
    #  define LIBRARY_EXPORT __declspec(dllexport)
    #else
    #  define LIBRARY_EXPORT __declspec(dllimport)
    #endif
    La définition de chaque classe se fera comme ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    #include "library_global.h"
     
    class LIBRARY_EXPORT MyClass
    {
        ...
    };
    Lorsqu'on utilise Qt, on peut utiliser les macros Q_DECL_IMPORT et Q_DECL_EXPORT à la place de __declspec(dllexport) et __declspec(dllimport). On peut aussi ajouter DEFINES += LIBRARY dans le .pro .

    Bref, c'était çà mon problème, j'aurais au moins appris quelque chose de nouveau.

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

Discussions similaires

  1. [Windows] Problème de bibliothèque et d'édition de liens
    Par jeanmarc-DD dans le forum Qt Creator
    Réponses: 0
    Dernier message: 10/05/2011, 14h21
  2. Réponses: 1
    Dernier message: 21/07/2009, 10h12
  3. Réponses: 4
    Dernier message: 17/03/2007, 19h11
  4. Une bibliothèque portable pour la gestion des dlls (plug-ins)
    Par Spartan03 dans le forum Bibliothèques
    Réponses: 4
    Dernier message: 20/11/2006, 19h33
  5. DLL & Plug-ins
    Par VincentB dans le forum Langage
    Réponses: 6
    Dernier message: 19/06/2003, 17h16

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