C++ 在.pro文件中是否可以使用Qt安装路径变量?

C++ 在.pro文件中是否可以使用Qt安装路径变量?,c++,linux,qt,deployment,C++,Linux,Qt,Deployment,我想复制一个音频插件到我的目标目录,因为我需要它的部署 它位于\gcc\plugins\audio 我不知道可以使用什么变量来引用/pro文件中的安装路径 我要添加的代码行如下所示: QMAKE_PRE_LINK += cp $$PATH_TO_QT_INSTAL/gcc/plugins/audio/* $$DESTDIR/lib || :; 有一个名为%{CurrentProject:QT_INSTALL_BINS}的环境变量,它让我可以使用$$PATH_to_QT_INSTAL/gcc/b

我想复制一个音频插件到我的目标目录,因为我需要它的部署

它位于
\gcc\plugins\audio

我不知道可以使用什么变量来引用/pro文件中的安装路径

我要添加的代码行如下所示:

QMAKE_PRE_LINK += cp $$PATH_TO_QT_INSTAL/gcc/plugins/audio/* $$DESTDIR/lib || :;
有一个名为
%{CurrentProject:QT_INSTALL_BINS}
的环境变量,它让我可以使用
$$PATH_to_QT_INSTAL/gcc/bin
,但我似乎只能在QT creator gui构建设置中使用它,这对我没有好处,因为这些设置位于.pro.user文件中。为什么qt没有一个通用的构建设置机制:(…(这只是一个附带问题,不需要回答)


我的问题是如何在我的pro文件中引用qt安装路径,是否有一个变量可以这样做,或者其他任何方式?

对于Qt4和Qt5,看起来像
$[qt\u install\u LIBS]
是您想要的?无法直接确认这是否有效

请参阅和。

另一种解决方案(可能不像上面的$[QT_INSTALL_LIBS]那样花哨),但我已经使用了很长时间:

TEMPNAME = $${QMAKE_QMAKE}
QTPATH = $$dirname(TEMPNAME) 
然后您可以像这样引用它(例如访问一些私有标题)或复制内容:

INCLUDEPATH += $$QTPATH/../../Src/qtbase/src/sql/kernel

变量
QT\u INSTALL\u PREFIX
似乎是您想要的,但它在很大程度上取决于QT的安装方式

要根据您感兴趣的确切qt目录进行更多微调,以下命令将为您提供qt持久属性的详尽列表:

/path/to/qmake -query

# Output
# QT_INSTALL_PREFIX:/path/to/Qt
# QT_INSTALL_ARCHDATA:...
# ...
例如,这里列出了已经提到的
QT\u INSTALL\u LIBS
。一旦找到与您的用例对应的变量,您就可以像前面提到的那样在.pro文件中使用它,例如使用
$[QT\u INSTALL\u PREFIX]

注意:从中,方括号应用于qmake属性(
$[]


版本:使用Qt 5.6.2和qmake 3.0进行测试

您可以通过运行
qmake-query Qt_INSTALL_BINS
命令来获取bin目录的路径,但我不知道这对您有什么帮助。嗯……实际上这给了我一个好主意。我已经有了一个deployQt.sh脚本,它使用ldd找到所有需要的Qt库并复制它们到我的lib文件夹…所以我可能可以将你的qmake query命令添加到其中。让我试试,如果它有效,我会让你知道,你可以把它作为一个答案,谢谢。另一方面,如果你有权访问
qmake
你知道它的路径,那就是QT_安装箱。@vahancho我不明白你的意思,我可以使用QT_吗在某个地方暂停?它似乎不是pro文件中填充的变量?您说过,您可以将qmake query命令添加到shell脚本中。这意味着您已经知道要调用它的qmake可执行文件的路径,对吗?如果是,该路径就是Qt-bin目录的路径,qmake位于该目录下。因此,您可以定义脚本中的环境变量,以便可以从pro文件中获得它。非常感谢,这正是我想要的。事实上,由于我想要插件目录(来自您引用的文档):
消息(插件:$$$[QT\u INSTALL\u plugins])
。我现在使用qt5.5,但格式是
$[]
不起作用,但是
$[]
很好-不确定这是否适用于更高版本的Qt?不,我不是一直在阅读第一个链接:看起来糟糕的论坛软件正在删除/折叠双-$(那里有一条注释表明这一点)。我编辑了我的答案以供将来参考。谢谢,您的解决方案对我来说非常有用-我使用了
QT_PLUG\u PATH=$$dirname(QMAKE_QMAKE)/../plugins
so+1,但我必须将答案提供给eclarkso,因为方括号内的变量列表正好满足了我的需要。