qmake: ¿Cómo puedo copiar .dll de / .so al directorio de resultados?
Pregunta
Tengo un proyecto Qt que construye un /-biblioteca compartida DLL y otro Qt-proyecto que pone a prueba la biblioteca.
¿Hay alguna buena manera de tener qmake copiar la dll a la salida-carpeta de la prueba en proyectos?
Solución
Agregue esto a su archivo de pro:
target.path = ../testProject/$$TARGET
INSTALLS += target
Otros consejos
# 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
}
Esto funciona, para la biblioteca QextSerialPort. Soporta el modo debug_and_release
de Qt.
QMAKE_POST_LINK
también funciona, pero generará un error si usted está tratando de ejecutar la aplicación inmediata: entonces su .dll se copiará demasiado tarde. QMAKE_PRE_LINK
no copiarlo en el tiempo.
Yo uso INSTALLS, como tal. (documentación qmake)
Esto puede no ser una forma 'buena' pero puede hacer el truco.
QMAKE_POST_LINK += some shell command to copy the dll
Puede utilizar la palabra clave DESTDIR
como se dice en QMake archivos documetation en Qt 4.