【问题标题】:How do I specify input the QMake INSTALLS variable?如何指定输入 QMake INSTALLS 变量?
【发布时间】:2012-03-11 18:22:12
【问题描述】:

在我的 Qt 项目中,我试图在构建过程中复制库。目标是在构建后使用所有必要的动态库获得现成的分发。

这似乎可以通过 INSTALLS 变量实现,但我发现文档有点薄: qmake Variable Reference: INSTALLS

在给出的例子中:

  • target 已经定义,还是通过写target.path = 定义?
  • 可能成员的文档在哪里? .path 和...?

【问题讨论】:

  • 看起来target 是在示例中定义的。 makefile 中的输出是install_target 的定义。引用变量存在一些错误。

标签: qt qmake


【解决方案1】:

是的,这里的文档有很多不足之处。

target 已定义,但这是一种特殊情况。您可以定义自己的附加部署集。以下是我们如何指定图像格式插件:

imageformats.path = /opt/some/path/bin/imageformats
imageformats.files += $$[QT_INSTALL_DATA]/plugins/imageformats/*.so
INSTALLS += imageformats

这是关于三个命令的最小文档:http://doc.qt.io/qt-4.8/qmake-environment-reference.html#installs

yourset.path = /path/in/which/to/install/files
yourset.files = /files/to/install
yourset.extra = custom commands to run, eg. `touch somefile.txt`
INSTALLS += yourset

【讨论】:

    【解决方案2】:

    target 是您要使用的任何字符串。这是您自己的标识符。

    target.files 定义了您要安装的内容。

    target.path 是您要放置target.files 的位置(目录)。

    例如,假设我有一个名为“config.xml”的文件,我想将它复制到目录“xyzzy”。我会在我的 qmake .pro 文件中使用以下内容来指定。

    my_file.files = config.xml
    my_file.path = xyzzy
    
    INSTALLS += my_file
    

    顺便说一句,要实际复制文件,您必须执行make install

    您还可以找到有助于理解的答案:Copy a file to build directory

    【讨论】:

    • 感谢您的链接。 %{buildDir} 是有效的语法还是只是为了说明。我试过了,但在 Qt Creator 中,表达式永远不会被评估:(
    • @eriktheblond 链接中的示例假定 buildDir 已在 qmake .pro 文件中的某处定义(即 buildDir = a/b/c)。
    • @jwernerny 很好的答案,除了目标实际上是一个“内置”并且有点特殊,而不是你想使用的任何东西。它与目标相关。见 - qt-project.org/doc/qt-4.8/….
    • @EirikM 也许 在旧版本中,从 Qt 5.5 开始,您可以执行以下操作(示例)。在您的 Project.pro 文件中的某处 LIB_DIR = ../libs 及更高版本,MY_LIB = $$LIB_DIR/my_lib/
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-30
    相关资源
    最近更新 更多