2015-02-05 1 views
2

У меня есть QMAKE проект, который выглядит следующим образом:Qmake получить путь целевой выходной файл

TEMPLATE = lib 
CONFIG += dll 
TARGET = mydll 

SOURCES += ... 
HEADERS += .... 

Теперь я хочу добавить INSTALLS раздел, так что у меня есть:

target.path = /path/to/somedir/ 
target.files =./$$TARGET 

INSTALLS+= target 

К сожалению, это будет не работает, потому что $$TARGET содержит имя цели, а не имя выходного файла. Есть ли переносной способ получить имя выходного файла? (Пожалуйста, не зависят от платформы конкатенация как lib + $$TARGET + .so)

ответ

2

Вам не нужно, чтобы не задавать target.files, target это особый случай, и это предопределено в qmake.

http://qt-project.org/doc/qt-4.8/qmake-environment-reference.html#installs

Если добавить встроенный набор установки в переменную INSTALLS и не указать файлы или дополнительные элементы, qmake будет решать, что должно быть скопировано для вас. В настоящее время поддерживается только встроенный набор установки является target:

target.path = /usr/local/myprogram 
INSTALLS += target 

В строках выше, QMAKE знает, что должно быть скопировано, и будет автоматически управлять процессом установки.

+0

Обратите внимание, что в Qt5 dlltarget был добавлен к специальным целям. https://doc.qt.io/qt-5/qmake-advanced-usage.html#installing-files – Bugfinger