在makefile中使用xcopy无法工作

4

我在尝试构建一个在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命令失败,并出现错误信息“参数数量无效”。最初我认为是命令格式不正确,但如果在命令提示符中运行该命令,则可以正常工作。更奇怪的是,如果我将这个确切的命令复制并粘贴到“ xcopycall.bat”文件中,并将Makefile更改为以下内容:
copyResources:
    xcopycall

那么一切都正常。切换到/也没有帮助,因此这似乎不是一个转义问题。为什么从批处理文件中运行它而不是在Makefile中可以解决这个问题呢?


尝试使用“\”而不是单引号-哎呀,我仔细看了一下,没有空格,所以应该没问题。 - Sebastian Lange
4
mingw32-make有一个讨厌的习惯,如果在PATH中找到sh.exe,它会通过sh而不是cmd运行命令。请确保您没有通过cygwin或git将其添加(如果您选择在安装期间添加完整的Unix实用程序文件夹到PATH)。 - jturcotte
2
@jturcotte的評論就是答案。只需添加一點來自#qt IRC的信息。在Windows中的CMD中使用"where sh"來查找sh.exe的位置。 - lixiang
1个回答

0
jturcotte和lixiang说的是对的,在我的情况下,sh.exe在目录C:\Program Files\Git\usr\bin中,但是删除Path中的该目录是不想要的,所以我在“GraphViz.pro”文件中注释了关于xcopy的行。这并不优雅,但可行:P

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接