【问题标题】:xcopy doesn't work when in a makefilexcopy 在 makefile 中不起作用
【发布时间】:2014-12-18 17:28:26
【问题描述】:

在尝试构建在 64 位 Windows 7 安装上下载的项目时,我遇到了错误 [copyResources] Error 4。在 Qt 生成的 Makefile 中,它包含以下两行:

copyResources:
    xcopy "D:\Downloads\GraphViz\GraphViz\res" "D:\Downloads\GraphViz\build-GraphViz-Desktop_Qt_5_3_MinGW_32bit-Debug" /e /y 

当它达到这个目标时,make 失败,错误为Invalid number of parameters。我最初假设一个格式错误的命令,但如果我在命令提示符下运行它,它工作正常。更奇怪的是,如果我将确切的命令复制并粘贴到 xcopycall.bat 并将 Makefile 更改为以下内容

copyResources:
    xcopycall

然后一切正常。切换到/ 没有帮助,所以它似乎不是一个逃避问题。为什么从批处理文件而不是在 Makefile 中运行它可以解决这个问题?

【问题讨论】:

  • 尝试使用“\”而不是单引号 - 错误,我只是仔细看了一下,没有空格,所以实际上应该没问题
  • mingw32-make 有通过 sh 而不是 cmd 运行命令的讨厌习惯,如果它可以在 PATH 中找到 sh.exe。确保您没有通过 cygwin 或 git 添加它(如果您选择在安装期间将完整的 unix 实用程序文件夹添加到 PATH)。
  • @jturcotte 的评论就是答案。只需添加我从#qt IRC 获得的一点。在 windows 的 CMD 中使用 "where sh" 来查找 sh.exe 的位置

标签: qt makefile qmake xcopy


【解决方案1】:

jturcotte 和 lixiang 说的是对的,在我的情况下,sh.exe 在目录C:\Program Files\Git\usr\bin 中,但不希望从Path 中删除目录,所以我在“GraphViz.亲”。它不优雅,但有效:P

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-26
    • 1970-01-01
    • 1970-01-01
    • 2018-05-11
    • 2013-09-24
    相关资源
    最近更新 更多