【问题标题】:How reference Qt Creator current build directory from Qt project file?如何从 Qt 项目文件中引用 Qt Creator 当前构建目录?
【发布时间】:2013-09-17 22:13:32
【问题描述】:

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 添加多个命令,请用 $$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(复制 /Y $$shell_path($$OUT_PWD)\debug\*.pdb ..\lib$$escape_expand(\\n))

再次感谢 $$OUT_PWD!

-埃德

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

【问题讨论】:

  • 虽然你的问题我不清楚,但我知道 Creator 在 Projects->BuildSettings 检查影子构建选项下提供它允许更改构建目录

标签: qt qmake


【解决方案1】:

是的

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

message($$OUT_PWD)

Qmake Variable Reference OUT_PWD

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

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

【讨论】:

  • 感谢您的 $$OUT_PWD !我需要逐行阅读 qmake 变量参考,为每个人添加一条消息语句以了解他们的工作。
  • QMAKE_POST_LINK 似乎不喜欢变量。我试过: QMAKE_POST_LINK = copy /Y "$$OUT_PWD\\debug\*.lib" "..\\lib"
  • 问题是 $$OUT_PWD 在路径 '/' 中使用正斜杠,这使得 QMAKE_POST_LINK 使用的 Windows 复制命令导致错误“命令的语法不正确。”。嗯...
  • 使用$$shell_path($$OUT_PWD) 解决了正斜杠'/'路径问题。再次感谢!
猜你喜欢
  • 1970-01-01
  • 2015-12-14
  • 2012-04-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-17
  • 2020-10-06
相关资源
最近更新 更多