如何从Qt项目文件引用Qt Creator当前生成目录?

如何从Qt项目文件引用Qt Creator当前生成目录?,qt,qmake,Qt,Qmake,Qt Creator是否设置了包含可从Qt项目文件引用的生成目录的qmake变量 Qt Creator默认生成目录: ../build-%{CurrentProject:Name}-%{CurrentKit:FileSystemName}-%{CurrentBuild:Name} ../build-%%{CurrentProject:Name}-%%{CurrentKit:FileSystemName}-%%{CurrentBuild:Name} 我的目标是使用QMAKE_POST_链接从构建输

Qt Creator是否设置了包含可从Qt项目文件引用的生成目录的qmake变量

Qt Creator默认生成目录:

../build-%{CurrentProject:Name}-%{CurrentKit:FileSystemName}-%{CurrentBuild:Name} ../build-%%{CurrentProject:Name}-%%{CurrentKit:FileSystemName}-%%{CurrentBuild:Name} 我的目标是使用QMAKE_POST_链接从构建输出复制dll的导入库,以使客户端项目更容易链接。如果我硬编码导入库的路径,QMAKE_POST_链接就会工作

例如:

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 QMAKE\u POST\u LINK=copy C:\projects\ICP\sw\icpts\sandbox\configurable system test io\build-lib-configurable-system-test-io-Desktop\u Qt\u 5\u 1\u 0\u MSVC2012\u 32位\u eb09a8-Debug\Debug\*.lib..\my lib 解决方案: fbucek提供的使用$$OUT\u DIR的解决方案解决了我的问题。谢谢大家!

  • 在Windows下,必须在QMAKE\u POST\u链接中使用$$shell\u path($$OUT\u PWD)将Unix“/”路径字符转换为Windows“\”路径字符
  • 要向QMAKE\u POST\u链接添加多个命令,请在$$quote()中附上附加的$$escape\u 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)) QMAKE\u POST\u LINK+=$$quote(复制/Y$$shell\u路径($$OUT\u PWD)\debug\*.dll..\lib$$escape\u展开(\\n)) QMAKE\u POST\u LINK+=$$quote(复制/Y$$shell\u路径($$OUT\u PWD)\debug\*.lib..\lib$$escape\u展开(\\n)) QMAKE\u POST\u LINK+=$$quote(复制/Y$$shell\u路径($$OUT\u PWD)\debug\*.pdb..\lib$$escape\u展开(\\n)) 再次感谢$$OUT\u PWD

-

  • Qt Creator 2.7.2
  • Qt 5.1
  • 微软VS 2012
  • 视窗7

    • 是的,确实如此

      把它放到pro文件中,运行qmake并检查它是否显示了您想要的内容

      message($$OUT_PWD)
      

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


      虽然我不清楚您的问题,但我知道Creator在Project->BuildSettings check shadow build选项下提供了更改构建目录的选项。谢谢您的$$OUT\u PWD!我需要逐行阅读qmake变量引用,为每个人添加一条消息语句,以了解他们在做什么。qmake_POST_LINK似乎不喜欢变量。我尝试过:QMAKE\u POST\u LINK=copy/Y“$$OUT\u PWD\\debug\*.lib”“..\\lib”问题是$$OUT\u PWD在路径“/”中使用前斜杠,这使得QMAKE\u POST\u LINK使用的Windows copy命令导致错误“命令语法不正确”。嗯……使用$$shell\u路径($$OUT\u PWD)解决了正斜杠“/”路径问题。再次感谢!
      QMAKE_POST_LINK = copy $$OUT_PWD\debug\*.lib  ..\my-lib