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?

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top