qmake:Как скопировать.dll/.Итак, в выходной каталог?

У меня есть Qt-проект, который строит dll / shared-library и другой Qt-проект, который проверяет библиотеку.

есть ли хороший способ, чтобы qmake скопировал dll в выходную папку тестового проекта?

5 ответов


добавьте это в свой файл pro:

target.path = ../testProject/$$TARGET
INSTALLS += target 

# 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
}

это работает, для библиотеки QextSerialPort. Поддержка в Qt debug_and_release режим.

QMAKE_POST_LINK также работает, но выдаст ошибку, если вы пытаетесь запустить приложение немедленно: тогда ваш .dll будет скопирована слишком поздно. QMAKE_PRE_LINK копирует его вовремя.


Я использую установки,вот так. (документация qmake)


это может быть не "хороший" способ, но он может сделать трюк.

QMAKE_POST_LINK += some shell command to copy the dll


можно использовать DESTDIR ключевое слово, как говорится в qmake в файлы documetation в Qt 4.