qmake: Comment puis-je copier .dll / .so de dans le répertoire de sortie?

StackOverflow https://stackoverflow.com/questions/1740534

  •  20-09-2019
  •  | 
  •  

Question

J'ai un Qt-projet qui construit une dll / bibliothèque partagée et un autre Qt projet qui teste la bibliothèque.

Y at-il un bon moyen d'avoir qmake copier la dll à la sortie-dossier du test-projet?

Était-ce utile?

La solution

Ajoutez ceci à votre fichier pro:

target.path = ../testProject/$$TARGET
INSTALLS += target 

Autres conseils

# Copy the dynamic library.
win32 {
   QMAKE_PRE_LINK=copy /Y lib\qextserialport\src\build\qextserialportd.dll debug\ & copy /Y lib\qextserialport\src\build\qextserialport.dll release\
}
else {
   # TODO: Unices
}

Cela fonctionne, pour la bibliothèque QextSerialPort. Prend en charge le mode debug_and_release de Qt.

QMAKE_POST_LINK fonctionne aussi, mais renvoie une erreur si vous essayez d'exécuter l'application immédiatement: alors votre .dll sera copié trop tard. QMAKE_PRE_LINK ne copie dans le temps.

J'utilise INSTALLE, comme ainsi. (documentation qmake)

Cela peut ne pas être un moyen « bon », mais il peut faire l'affaire.

QMAKE_POST_LINK += some shell command to copy the dll

Vous pouvez utiliser mot-clé DESTDIR comme il est dit dans les fichiers qmake documetation dans Qt 4.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top