qmake: Comment puis-je copier .dll / .so de dans le répertoire de sortie?
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?
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.