Windows10下用MinGW编译hp2xx时make提示copy命令未找到的问题
MinGW编译hp2xx时Makefile的copy命令找不到问题解决方案
我来给你拆解下这个问题的根源,以及对应的解决办法:
问题原因
你用的应该是MSYS附带的make工具吧?它默认会调用类Unix的shell(比如bash)来执行Makefile里的命令,而Windows的copy是cmd.exe的内置命令——它不是一个独立的.exe可执行文件,bash这类Unix风格的shell根本找不到它。
你在cmd窗口里能正常用copy,是因为你直接在cmd的环境里,但make执行命令时走的是MSYS的shell环境,两者的命令查找逻辑不一样。另外,你用的dosdjgpp.mak是为DOS下的DJGPP环境写的,和MinGW/MSYS的环境不匹配,直接复制过来必然会有这类命令兼容性问题。
解决办法
这里有几个靠谱的调整方案,你选一个就行:
1. 换成Unix风格的cp命令(推荐)
MinGW/MSYS自带了Unix风格的文件复制命令cp,直接把Makefile里的那行改成:
pbuf.o: picbuf.o cp picbuf.o pbuf.o
⚠️ 注意:Makefile里的命令行必须用Tab键缩进,不能用空格,否则会报错。
2. 强制让make调用cmd执行copy
如果你坚持要用Windows原生的copy命令,可以在命令前加上cmd /c,让cmd来处理这个命令:
pbuf.o: picbuf.o cmd /c copy picbuf.o pbuf.o
这样make会启动cmd.exe来执行copy命令,就能找到这个内置命令了。
3. 确认make的版本
如果你用的是mingw32-make(原生Windows版的make),而不是MSYS的make,它的命令执行逻辑更贴近Windows,但还是建议用上面两种方法之一来兼容,避免后续其他DOS命令再出问题。
内容的提问来源于stack exchange,提问作者upsidedowncreature
相关产品推荐
相关产品推荐

