qmake ( создать ):Как мне скопировать .dll /.so в выходной каталог?
Вопрос
У меня есть Qt-проект, который создает dll / общую библиотеку, и другой Qt-проект, который тестирует библиотеку.
Есть ли какой-нибудь хороший способ заставить qmake скопировать dll в выходную папку тестового проекта?
Решение
Добавьте это в свой профессиональный файл:
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 в Qt 4.