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的解决方案解决了我的问题.谢谢!
多个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
fbu*_*cek 12
是的,它确实
把它放在专业文件中,运行qmake并检查它是否显示你想要的内容
message($$OUT_PWD)
Run Code Online (Sandbox Code Playgroud)
然后你可以像这样使用它:(我希望 - 没有测试过)
QMAKE_POST_LINK = copy $$OUT_PWD\debug\*.lib ..\my-lib
Run Code Online (Sandbox Code Playgroud)