15

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

Qt Creator 默认构建目录:

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

我的目标是使用 QMAKE_POST_LINK 从构建输出中复制 dll 的导入库,以使我的客户端项目更容易链接。如果我对导入库的路径进行硬编码,QMAKE_POST_LINK 就可以工作。

例如:

QMAKE_POST_LINK = 复制 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-库

解决方案: fbucek 提供的使用 $$OUT_DIR 的解决方案解决了我的问题。谢谢你!

  • 在 Windows 下,您必须在 QMAKE_POST_LINK 中使用 $$shell_path($$OUT_PWD) 将 Unix '/' 路径字符转换为 Windows '\' 路径字符。
  • 要将多个命令添加到 QMAKE_POST_LINK,请用附加的 $$escape_expand(\n) 括在 $$quote() 中。

多个 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(复制 /Y $$shell_path($$OUT_PWD)\debug\*.pdb ..\lib$$escape_expand(\\n))

再次感谢 $$OUT_PWD !

-埃德

  • Qt 创作者 2.7.2
  • Qt 5.1
  • 微软 VS 2012
  • Windows 7的
4

1 回答 1

13

是的,它确实

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

message($$OUT_PWD)

Qmake 变量参考 OUT_PWD

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

QMAKE_POST_LINK = copy $$OUT_PWD\debug\*.lib  ..\my-lib
于 2013-09-18T06:52:48.733 回答