Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. French
  4. Inclure une dll à un projet Qt
QtWS25 Last Chance

Inclure une dll à un projet Qt

Scheduled Pinned Locked Moved Unsolved French
12 Posts 2 Posters 2.5k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M Offline
    M Offline
    magarto
    wrote on 4 Apr 2020, 17:53 last edited by
    #1

    Bonjour,

    Je souhaites ajouter une librairie .dll à un projet Qt. Jusque là j'utilisais codeblocks, pour ajouter la librairie à mon projet il suffisait d'inclure le header (.h) et d'indiquer l'emplacement du fichier .dll au linker.

    J'ai essayé d'ajouter la dll dans le .pro comme suit :

    LIBS += MaLibrairie.dll

    Le problème c'est qu'a la compilation on dirait que Qt renome les fonctions par exemple j'utilise la fonction GrannyGetFileInfo le compilateur indique "erreur : undefined reference to `_imp__GrannyGetFileInfo@4'".

    Une idée pour obtenir le même comportement que sur Codeblocks ?

    1 Reply Last reply
    0
    • S Offline
      S Offline
      SGaist
      Lifetime Qt Champion
      wrote on 4 Apr 2020, 18:36 last edited by
      #2

      Bonjour et bienvenue sur devnet,

      Ce ne sont pas les dlls qui sont utilisées pour cette partie là mais le fichier .lib.

      Qt Creator propose un assistant pour ajouter des librairies au projet.

      Interested in AI ? www.idiap.ch
      Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

      1 Reply Last reply
      1
      • M Offline
        M Offline
        magarto
        wrote on 4 Apr 2020, 19:06 last edited by
        #3

        Effectivement ça marche merci ! Je n'ai pas bien compris la différence entre .dll et .lib ce n'est pas qu'une question de compilateur ?

        1 Reply Last reply
        0
        • S Offline
          S Offline
          SGaist
          Lifetime Qt Champion
          wrote on 4 Apr 2020, 19:55 last edited by
          #4

          Non, une dll est une libraire dynamic qui contient le code à exécuter réutilisable par plusieurs applications/librairies.

          Le fichier .lib est soit un fichier d'importation soit une librairie statique.

          Ceci est valable pour Visual Studio. Les choses sont un peu différentes pour MinGW.

          Dans les deux cas, le nom de la librairie est utilisé pour le linker sans utilisation de l'extension.

          Interested in AI ? www.idiap.ch
          Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

          1 Reply Last reply
          1
          • M Offline
            M Offline
            magarto
            wrote on 4 Apr 2020, 20:51 last edited by
            #5

            Il est possible d'utiliser une dll avec Qt ? Dans le cas ou le .lib n'est pas disponible

            1 Reply Last reply
            0
            • S Offline
              S Offline
              SGaist
              Lifetime Qt Champion
              wrote on 4 Apr 2020, 20:53 last edited by
              #6

              Qt est un framework C++.

              À quelle librairie faites-vous référence ? Avec quel compilateur a-t-elle été générée ?

              Interested in AI ? www.idiap.ch
              Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

              1 Reply Last reply
              1
              • M Offline
                M Offline
                magarto
                wrote on 5 Apr 2020, 08:29 last edited by
                #7

                Elle a été générée avec g++ ou gcc, j'arrive à la compiler avec le compilateur g++ de codeblocks, c'est pour ça que je m’étonne de ne pas pouvoir l'intégrer à Qt.

                1 Reply Last reply
                0
                • S Offline
                  S Offline
                  SGaist
                  Lifetime Qt Champion
                  wrote on 5 Apr 2020, 16:07 last edited by
                  #8

                  Quelle version de Qt avez-vous installée exactement ?

                  Interested in AI ? www.idiap.ch
                  Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                  1 Reply Last reply
                  0
                  • M Offline
                    M Offline
                    magarto
                    wrote on 5 Apr 2020, 17:27 last edited by
                    #9

                    Qt creator : 4.11.2 et Qt : 5.14.2. Je compile mon projet avec le compilateur Qt 5.14.2 MinGW 32-bit

                    1 Reply Last reply
                    0
                    • S Offline
                      S Offline
                      SGaist
                      Lifetime Qt Champion
                      wrote on 5 Apr 2020, 19:08 last edited by
                      #10

                      J'y pense, il manque "-l" pour dire au linker d'utiliser cette librairie. Ou est-elle située sur votre ordinateur ?

                      Interested in AI ? www.idiap.ch
                      Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                      1 Reply Last reply
                      1
                      • M Offline
                        M Offline
                        magarto
                        wrote on 6 Apr 2020, 19:28 last edited by
                        #11

                        En définitive j'aimerais qu'elle soit stocké dans le dossier de l’exécutable (comme le reste des dll Qt). J'ai essayé d'ajouter un -lMaLibrairie.dll mais il m'indique qu'il ne trouve le fichier (y compris en le mettant dans le dossier de compilation). Il faut la mettre dans un endroit spécifique ?

                        1 Reply Last reply
                        0
                        • S Offline
                          S Offline
                          SGaist
                          Lifetime Qt Champion
                          wrote on 6 Apr 2020, 19:49 last edited by
                          #12

                          Il faut indiquer au compilateur où trouver la librairie en utilisant l'argument -L.

                          Interested in AI ? www.idiap.ch
                          Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                          1 Reply Last reply
                          1

                          6/12

                          4 Apr 2020, 20:53

                          • Login

                          • Login or register to search.
                          6 out of 12
                          • First post
                            6/12
                            Last post
                          0
                          • Categories
                          • Recent
                          • Tags
                          • Popular
                          • Users
                          • Groups
                          • Search
                          • Get Qt Extensions
                          • Unsolved