Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将文件复制到输出目录QT_Qt_Qt5 - Fatal编程技术网

将文件复制到输出目录QT

将文件复制到输出目录QT,qt,qt5,Qt,Qt5,我目前正在努力获取项目的子文件夹以复制到out目录。我原以为我把一切都安排好了,但我想我错过了一步。当我运行make时,会收到一条“无规则生成目标‘copyfiles’”消息 我知道我可以用特定于操作系统的方法进行新的构建步骤,但我希望避免它,因为我希望最终在不同的操作系统上构建和运行 编辑: 是的,这个问题以前有人问过。然而,这些问题中给出的解决方案对我来说并不奏效。他们会犯错误或者什么都不做 CONFIG(release, debug|release): DESTDIR = $$OUT_PW

我目前正在努力获取项目的子文件夹以复制到out目录。我原以为我把一切都安排好了,但我想我错过了一步。当我运行make时,会收到一条“无规则生成目标‘copyfiles’”消息

我知道我可以用特定于操作系统的方法进行新的构建步骤,但我希望避免它,因为我希望最终在不同的操作系统上构建和运行

编辑: 是的,这个问题以前有人问过。然而,这些问题中给出的解决方案对我来说并不奏效。他们会犯错误或者什么都不做

CONFIG(release, debug|release): DESTDIR = $$OUT_PWD/release
CONFIG(debug, debug|release): DESTDIR = $$OUT_PWD/debug

copytarget.path    = $$DESTDIR/etc
copytarget.files  += $$files(etc/*)

## === os specific dir separator ===
win32 {
    copytarget.files ~= s,/,\\,g
    copytarget.path ~= s,/,\\,g
}

message("found files for copytarget: "$$copytarget.files)
message("found files destination: "$$copytarget.path)

## === copy compiler for makefile ===
DirSep = /
win32: DirSep = \\

for(f,copytarget.files) tmp += $$PWD$$DirSep$${f} ## make absolute paths
copycompiler.input        = tmp

isEmpty(DESTDIR):DESTDIR=.
copycompiler.output       = $$DESTDIR$$DirSep${QMAKE_FILE_BASE}${QMAKE_FILE_EXT}
copycompiler.commands     = $(COPY_FILE) ${QMAKE_FILE_IN} ${QMAKE_FILE_OUT}
copycompiler.CONFIG       = no_link no_clean
## other CONFIG options are: depends explicit_dependencies target_predeps

copycompiler.variable_out = QMAKE_DISTCLEAN
QMAKE_EXTRA_COMPILERS += copycompiler

## == makefile copy target ===
copyfiles.recurse_target = compiler_copycompiler_make_all
copyfiles.depends        = $$copyfiles.recurse_target
copyfiles.CONFIG        += recursive

MAKE_EXTRA_TARGETS += copyfiles
POST_TARGETDEPS     += copyfiles ## copy files after source compilation

INSTALLS += copytarget

当我需要将文件复制到目标时,我使用它定义了一个复制函数。@eyllanesc的可能重复是的,这是同一个问题,但它是重复的,因为其他问题中选择的解决方案似乎对我不起作用。他们要么无法复制文件,要么只是抛出错误@Ross Rogers你的给了我一个“系统找不到指定的路径”。我的其他_文件被调用为:other_files+=etc/Server.ini,因此最后运行的命令是copy/y etc\Server.ini E:\H2\build-H2-Desktop\u Qt\u 5\u 10\u 0\MinGW\u 32bit-Debug\Server\debug@Pyromanci,我也不能用那个答案。我不得不将
QMAKE\u POST\u链接
行更改为
QMAKE\u POST\u LINK+=$$QMAKE\u COPY$$quote($$FILE)$$quote($$DDIR)$$escape\u expand(\\n\\t\\n\\t)
我不记得有错误,但我也不得不处理它。那个编辑过的版本对我来说可以在Linux和Windows上运行。你也可以在原始答案下面看到评论。