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