qmake: Как мне скопировать .dll / .so в выходной каталог? - PullRequest
11 голосов
/ 16 ноября 2009

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

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

Ответы [ 5 ]

8 голосов
/ 18 мая 2010
# 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 копирует это вовремя.

7 голосов
/ 16 ноября 2009

Добавьте это к вашему профессиональному файлу:

target.path = ../testProject/$$TARGET
INSTALLS += target 
4 голосов
/ 16 ноября 2009

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

2 голосов
/ 16 ноября 2009

Возможно, это не очень хороший способ, но он может помочь.

QMAKE_POST_LINK += some shell command to copy the dll

1 голос
/ 15 июня 2013

Вы можете использовать ключевое слово DESTDIR, как сказано в Документация по файлам qmake в Qt 4.

...