Inclure une dll à un projet Qt
-
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 ?
-
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.
-
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.
-
Qt est un framework C++.
À quelle librairie faites-vous référence ? Avec quel compilateur a-t-elle été générée ?
-
Quelle version de Qt avez-vous installée exactement ?
-
J'y pense, il manque "-l" pour dire au linker d'utiliser cette librairie. Ou est-elle située sur votre ordinateur ?
-
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 ?
-
Il faut indiquer au compilateur où trouver la librairie en utilisant l'argument -L.