Qmake: Como copio .dll/.so para o diretório de saída?
Pergunta
Eu tenho um projeto QT que cria uma DLL/Library Compartilhada e outro projeto QT que testa a biblioteca.
Existe alguma boa maneira de copiar QMake a DLL para o dobrador de saída do projeto de teste?
Solução
Adicione isso ao seu arquivo Pro:
target.path = ../testProject/$$TARGET
INSTALLS += target
Outras dicas
# 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
}
Isso funciona, para a Biblioteca QextSerialPort. Suporta QT's debug_and_release
modo.
QMAKE_POST_LINK
Também funciona, mas apresentará um erro se você estiver tentando executar o aplicativo imediatamente: então seu .dll será copiado tarde demais. QMAKE_PRE_LINK
Copra -o no tempo.
Eu uso instalações, igual a. (Documentação do QMake)
Isso pode não ser uma maneira 'boa', mas pode fazer o truque.
QMAKE_POST_LINK += some shell command to copy the dll
Você pode usar DESTDIR
palavra -chave como é dito em QMake arquivos documetação em Qt 4.