qmake: Come faccio a copiare DLL / .so di nella directory di output?
Domanda
Ho un Qt-progetto che costruisce una DLL / shared-library e un altro Qt progetto che mette alla prova la libreria.
C'è un buon modo per avere qmake copiare la dll all'uscita cartella del test-progetto?
Soluzione
Aggiungi questo al vostro file Pro:
target.path = ../testProject/$$TARGET
INSTALLS += target
Altri suggerimenti
# 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
}
Questo funziona, per la biblioteca QextSerialPort. Supporta la modalità debug_and_release
di Qt.
QMAKE_POST_LINK
funziona anche, ma genera un errore se si sta cercando di eseguire immediatamente l'applicazione: allora il vostro DLL verrà copiato troppo tardi. QMAKE_PRE_LINK
non copiarlo nel tempo.
Io uso di installare, in questo modo. (documentazione qmake)
Questo non può essere un modo 'buono', ma può fare il trucco.
QMAKE_POST_LINK += some shell command to copy the dll
È possibile utilizzare DESTDIR
parola chiave come si dice in QMake file documetation in Qt 4.