Как ссылка текущей директории сборки Qt Creator из файла проекта Qt?

Создает ли Qt Creator переменную qmake, содержащую каталог сборки, на который можно ссылаться из файла проекта Qt?

Каталог сборки по умолчанию Qt Creator:

../build-%{CurrentProject:Name}-%{CurrentKit:FileSystemName}-%{CurrentBuild:Name}

Моя цель - скопировать dll import lib из вывода сборки с помощью QMAKE_POST_LINK, чтобы упростить связь моего проекта-клиента. QMAKE_POST_LINK работает, если я жестко кодирую путь к lib lib.

Например:

QMAKE_POST_LINK = copy C:\projects\ICP\sw\icpts\sandbox\configurable-system-test-io\build-lib-configurable-system-test-io-Desktop_Qt_5_1_0_MSVC2012_32bit_eb09a8-Debug\debug\*.lib  ..\my-lib

Решение: Решение, предоставленное fbucek для использования $$ OUT_DIR, решило мою проблему. Спасибо!

  • В Windows вы должны использовать $$ shell_path ($$ OUT_PWD) в QMAKE_POST_LINK для преобразования символов пути Unix '/' к символам пути Windows\.
  • Чтобы добавить несколько команд в QMAKE_POST_LINK, заключите в $$ quote() с добавленным $$ escape_expand (\n).

Пример нескольких команд QMAKE_POST_LINK:

QMAKE_POST_LINK += $$quote(copy /Y $$shell_path($$OUT_PWD)\debug\*.dll  ..\lib$$escape_expand(\\n))
QMAKE_POST_LINK += $$quote(copy /Y $$shell_path($$OUT_PWD)\debug\*.lib  ..\lib$$escape_expand(\\n))
QMAKE_POST_LINK += $$quote(copy /Y $$shell_path($$OUT_PWD)\debug\*.pdb  ..\lib$$escape_expand(\\n))

Еще раз спасибо за $$ OUT_PWD!

Ред

  • Qt Creator 2.7.2
  • Qt 5.1
  • Microsoft VS 2012
  • Windows 7

Ответ 1

Да, он делает

Поместите это в pro файл, запустите qmake и проверьте, показывает ли он, что вы хотите

message($$OUT_PWD)

Ссылка на переменную Qmake OUT_PWD

Тогда вы можете использовать его следующим образом: (надеюсь - не проверено)

QMAKE_POST_LINK = copy $$OUT_PWD\debug\*.lib  ..\my-lib