qmake ( создать ):Как мне скопировать .dll /.so в выходной каталог?

StackOverflow https://stackoverflow.com/questions/1740534

  •  20-09-2019
  •  | 
  •  

Вопрос

У меня есть 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.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top