QTCreator将文件复制到带有安装的输出目录

QTCreator将文件复制到带有安装的输出目录,qt,build,qt-creator,qmake,Qt,Build,Qt Creator,Qmake,我的Qt项目中有两个子目录docroot和config。每当我构建/调试项目时,这些目录中的文件应复制到构建目录 到目前为止,可以使用安装(),这似乎比运行copy命令(例如)容易得多。描述了一种类似的方法 然而,当我在Qt Creator中运行构建时,什么都没有发生。这说明我需要运行makeinstall。无论何时构建,我都可以从Qt Creator中自动触发/执行此操作。我总是需要最新版本的文件 编辑:最终我使用了$$OUT\u PWD而不是$$DESTDIR 洛根的原始评论: “请注意:我

我的Qt项目中有两个子目录
docroot
config
。每当我构建/调试项目时,这些目录中的文件应复制到构建目录

到目前为止,可以使用
安装
(),这似乎比运行copy命令(例如)容易得多。描述了一种类似的方法

然而,当我在Qt Creator中运行构建时,什么都没有发生。这说明我需要运行
makeinstall
。无论何时构建,我都可以从Qt Creator中自动触发/执行此操作。我总是需要最新版本的文件

编辑:最终我使用了
$$OUT\u PWD
而不是
$$DESTDIR

洛根的原始评论:
“请注意:我使用了
$$OUT\u PWD
而不是
$$DESTDIR
来实现它。作为参考,
$$OUT\u PWD
是构建程序的文件夹,而
$$PWD
是构建程序的文件夹-换句话说,它是.pro文件所在的位置。”

您需要的是自定义构建步骤

  • 切换到项目模式:按Ctrl+5
  • 构建设置选项卡上的构建步骤下,单击添加构建步骤
  • 从菜单中选择“制作”
  • 安装写入生成参数:文本输入框

  • (我检查这些的版本是Qt Creator 2.4.1。)

    我在Windows7上使用了Shadow Build,遇到了与您相同的问题

    此外,在设置我的
    安装并运行make install后,我收到以下消息:

    “安装”无需执行任何操作

    原因是您必须自己设置$$DESTDIR

    在我的例子中,我想复制*.qml文件,这就是我实现它的方式:

    # if you are using Shadow build, you need to get the output folder
    CONFIG(release, debug|release): DESTDIR = $$OUT_PWD/release
    CONFIG(debug, debug|release): DESTDIR = $$OUT_PWD/debug
    
    # if you are using normal build (non-shadow) that would have worked as well.
    CONFIG(release, debug|release): DESTDIR = release
    CONFIG(debug, debug|release): DESTDIR = debug    
    
    QmlFiles.path = $$DESTDIR/Qml
    QmlFiles.files += $$files(Qml/*.qml)
    
    INSTALLS += QmlFiles
    
    编辑:


    我发现可以使用
    $$out\u PWD
    查找阴影构建输出路径。因此,我修复了代码,最终与您使用的代码接近。

    您的部分是正确的,谢谢。我仍然只有一个问题$${DESTDIR}没有被设置(虽然它是自动设置为build dir的),尝试%{buildDir}也没有成功。因此,我们必须找出正确的var。
    # if you are using Shadow build, you need to get the output folder
    CONFIG(release, debug|release): DESTDIR = $$OUT_PWD/release
    CONFIG(debug, debug|release): DESTDIR = $$OUT_PWD/debug
    
    # if you are using normal build (non-shadow) that would have worked as well.
    CONFIG(release, debug|release): DESTDIR = release
    CONFIG(debug, debug|release): DESTDIR = debug    
    
    QmlFiles.path = $$DESTDIR/Qml
    QmlFiles.files += $$files(Qml/*.qml)
    
    INSTALLS += QmlFiles