如何从Qt项目文件中引用Qt Creator当前构建目录?

Ed *_*ain 12 qt qmake

Qt Creator是否设置了一个qmake变量,其中包含可以从Qt项目文件中引用的构建目录?

Qt Creator默认构建目录:

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

我的目标是使用QMAKE_POST_LINK从构建输出中复制dll的import lib,以便我的客户端项目更容易链接.如果我硬编码导入库的路径,QMAKE_POST_LINK可以正常工作.

例如:

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下,必须在QMAKE_POST_LINK中使用$$ shell_path($$ OUT_PWD)将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!

-ed

  • Qt Creator 2.7.2
  • Qt 5.1
  • 微软VS 2012
  • Windows 7的

fbu*_*cek 12

是的,它确实

把它放在专业文件中,运行qmake并检查它是否显示你想要的内容

message($$OUT_PWD)
Run Code Online (Sandbox Code Playgroud)

Qmake变量参考OUT_PWD

然后你可以像这样使用它:(我希望 - 没有测试过)

QMAKE_POST_LINK = copy $$OUT_PWD\debug\*.lib  ..\my-lib
Run Code Online (Sandbox Code Playgroud)