TL;博士:
在全新的 Windows 10 安装中,我安装了 ARM DS-5 v5.26.2 开发工具。我正在使用它make.exe
来构建我们的项目,无论是从 Cygwin 命令行还是从 Eclipse IDE 的构建设置。
我们的 Makefile 包含以下行:
uname_result := $(shell uname -s)
但是每当make
到达这条线时,它就会卡住。这发生在 bash 终端以及 Window 的命令提示符上。
更新 3:
经过更多故障排除后,问题似乎出在 DS-5 的make
实用程序本身。我添加make
到我的 Cygwin 安装中,并改用那个,现在我的构建运行正常。
现在的问题是为什么 ARM 的版本不能在我的 Win 10 机器上运行,而它曾经在 Win 7 上运行良好。
长版:
在我的工作 PC 上使用 Windows 7 两年后,我刚刚在我的工作 PC 上完成了 Windows 10 的全新安装。在过去的两天里,我正在重新安装我们的工具并恢复原状。不幸的是,我现在被困在make
让我头疼的问题上。
我们使用 ARM 的 DS-5 工具集开发嵌入式固件。该项目是一个 Makefile 项目,因此我们不使用内置的 Eclipse 构建器。为了在 Eclipse 环境之外构建项目,我安装Cygwin
了一个方便的bash
CLI。两者都是 DS-5 安装make
的clang
一部分。
当我make
在项目的Makefile
表单 CLI 上运行时,执行会无限期地卡住。
[...在问题揭示过程之后删除一个长篇故事...]
追查问题根源后,发现问题出在这一行:
uname_result := $(shell uname -s 2>NUL)
为了简化它,我验证了问题在于shell
命令本身。我使用以下命令做了一个非常简单Makefile
的操作,但它也被卡住了:
uname_result := $(shell ls)
当使用 处理生成文件时make -d
,当它到达该行时,我得到以下信息:
CreateProcess(C:\cygwin64\bin\ls.exe,ls,...)
Main thread handle = 000000000000009C
为什么不能make
执行shell
命令?在迁移之前,这个完全相同的脚本曾经运行良好。
更新 1 含更多信息:
我的系统上只有一个make.exe
,位于C:\DS-5_v5.26.2\bin
.
我创建了一个简化的makefile Makefile.tmp
,:
.PHONY: help
help:
echo ====================== TESTING ======================
uname_result := $(shell ls)
我从 Cygwin 的 bash CLI 处理这个 makefile:
$ /cygdrive/c/DS-5_v5.26.2/bin/make -d -f Makefile.tmp help
我得到大量的诊断作为回报:
GNU Make 4.1
Built for Windows32
Copyright (C) 1988-2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
find_and_set_shell() path search set default_shell = C:/cygwin64/bin/sh.exe
Reading makefiles...
Reading makefile 'Makefile.tmp'...
Updating makefiles....
Considering target file 'Makefile.tmp'.
Looking for an implicit rule for 'Makefile.tmp'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.o'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.c'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.cc'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.C'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.cpp'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.p'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.f'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.F'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.m'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.r'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.s'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.S'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.mod'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.sh'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp,v'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'RCS/Makefile.tmp,v'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'RCS/Makefile.tmp'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 's.Makefile.tmp'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'SCCS/s.Makefile.tmp'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.o'.
Looking for a rule with intermediate file 'Makefile.tmp.o'.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.c'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.cc'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.C'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.cpp'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.p'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.f'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.F'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.m'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.r'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.s'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.S'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.mod'.
Trying pattern rule with stem 'Makefile.tmp.o'.
Trying implicit prerequisite 'Makefile.tmp.o,v'.
Trying pattern rule with stem 'Makefile.tmp.o'.
Trying implicit prerequisite 'RCS/Makefile.tmp.o,v'.
Trying pattern rule with stem 'Makefile.tmp.o'.
Trying implicit prerequisite 'RCS/Makefile.tmp.o'.
Trying pattern rule with stem 'Makefile.tmp.o'.
Trying implicit prerequisite 's.Makefile.tmp.o'.
Trying pattern rule with stem 'Makefile.tmp.o'.
Trying implicit prerequisite 'SCCS/s.Makefile.tmp.o'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.c'.
Looking for a rule with intermediate file 'Makefile.tmp.c'.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.y'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.l'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.w'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.w'.
Trying pattern rule with stem 'Makefile.tmp.c'.
Trying implicit prerequisite 'Makefile.tmp.c,v'.
Trying pattern rule with stem 'Makefile.tmp.c'.
Trying implicit prerequisite 'RCS/Makefile.tmp.c,v'.
Trying pattern rule with stem 'Makefile.tmp.c'.
Trying implicit prerequisite 'RCS/Makefile.tmp.c'.
Trying pattern rule with stem 'Makefile.tmp.c'.
Trying implicit prerequisite 's.Makefile.tmp.c'.
Trying pattern rule with stem 'Makefile.tmp.c'.
Trying implicit prerequisite 'SCCS/s.Makefile.tmp.c'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.y'.
Looking for a rule with intermediate file 'Makefile.tmp.y'.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'Makefile.tmp.y'.
Trying implicit prerequisite 'Makefile.tmp.y,v'.
Trying pattern rule with stem 'Makefile.tmp.y'.
Trying implicit prerequisite 'RCS/Makefile.tmp.y,v'.
Trying pattern rule with stem 'Makefile.tmp.y'.
Trying implicit prerequisite 'RCS/Makefile.tmp.y'.
Trying pattern rule with stem 'Makefile.tmp.y'.
Trying implicit prerequisite 's.Makefile.tmp.y'.
Trying pattern rule with stem 'Makefile.tmp.y'.
Trying implicit prerequisite 'SCCS/s.Makefile.tmp.y'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.l'.
Looking for a rule with intermediate file 'Makefile.tmp.l'.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'Makefile.tmp.l'.
Trying implicit prerequisite 'Makefile.tmp.l,v'.
Trying pattern rule with stem 'Makefile.tmp.l'.
Trying implicit prerequisite 'RCS/Makefile.tmp.l,v'.
Trying pattern rule with stem 'Makefile.tmp.l'.
Trying implicit prerequisite 'RCS/Makefile.tmp.l'.
Trying pattern rule with stem 'Makefile.tmp.l'.
Trying implicit prerequisite 's.Makefile.tmp.l'.
Trying pattern rule with stem 'Makefile.tmp.l'.
Trying implicit prerequisite 'SCCS/s.Makefile.tmp.l'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.w'.
Looking for a rule with intermediate file 'Makefile.tmp.w'.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'Makefile.tmp.w'.
Trying implicit prerequisite 'Makefile.tmp.w,v'.
Trying pattern rule with stem 'Makefile.tmp.w'.
Trying implicit prerequisite 'RCS/Makefile.tmp.w,v'.
Trying pattern rule with stem 'Makefile.tmp.w'.
Trying implicit prerequisite 'RCS/Makefile.tmp.w'.
Trying pattern rule with stem 'Makefile.tmp.w'.
Trying implicit prerequisite 's.Makefile.tmp.w'.
Trying pattern rule with stem 'Makefile.tmp.w'.
Trying implicit prerequisite 'SCCS/s.Makefile.tmp.w'.
Trying pattern rule with stem 'Makefile.tmp'.
Rejecting impossible implicit prerequisite 'Makefile.tmp.w'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.cc'.
Looking for a rule with intermediate file 'Makefile.tmp.cc'.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'Makefile.tmp.cc'.
Trying implicit prerequisite 'Makefile.tmp.cc,v'.
Trying pattern rule with stem 'Makefile.tmp.cc'.
Trying implicit prerequisite 'RCS/Makefile.tmp.cc,v'.
Trying pattern rule with stem 'Makefile.tmp.cc'.
Trying implicit prerequisite 'RCS/Makefile.tmp.cc'.
Trying pattern rule with stem 'Makefile.tmp.cc'.
Trying implicit prerequisite 's.Makefile.tmp.cc'.
Trying pattern rule with stem 'Makefile.tmp.cc'.
Trying implicit prerequisite 'SCCS/s.Makefile.tmp.cc'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.C'.
Looking for a rule with intermediate file 'Makefile.tmp.C'.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'Makefile.tmp.C'.
Trying implicit prerequisite 'Makefile.tmp.C,v'.
Trying pattern rule with stem 'Makefile.tmp.C'.
Trying implicit prerequisite 'RCS/Makefile.tmp.C,v'.
Trying pattern rule with stem 'Makefile.tmp.C'.
Trying implicit prerequisite 'RCS/Makefile.tmp.C'.
Trying pattern rule with stem 'Makefile.tmp.C'.
Trying implicit prerequisite 's.Makefile.tmp.C'.
Trying pattern rule with stem 'Makefile.tmp.C'.
Trying implicit prerequisite 'SCCS/s.Makefile.tmp.C'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.cpp'.
Looking for a rule with intermediate file 'Makefile.tmp.cpp'.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'Makefile.tmp.cpp'.
Trying implicit prerequisite 'Makefile.tmp.cpp,v'.
Trying pattern rule with stem 'Makefile.tmp.cpp'.
Trying implicit prerequisite 'RCS/Makefile.tmp.cpp,v'.
Trying pattern rule with stem 'Makefile.tmp.cpp'.
Trying implicit prerequisite 'RCS/Makefile.tmp.cpp'.
Trying pattern rule with stem 'Makefile.tmp.cpp'.
Trying implicit prerequisite 's.Makefile.tmp.cpp'.
Trying pattern rule with stem 'Makefile.tmp.cpp'.
Trying implicit prerequisite 'SCCS/s.Makefile.tmp.cpp'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.p'.
Looking for a rule with intermediate file 'Makefile.tmp.p'.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.web'.
Trying pattern rule with stem 'Makefile.tmp.p'.
Trying implicit prerequisite 'Makefile.tmp.p,v'.
Trying pattern rule with stem 'Makefile.tmp.p'.
Trying implicit prerequisite 'RCS/Makefile.tmp.p,v'.
Trying pattern rule with stem 'Makefile.tmp.p'.
Trying implicit prerequisite 'RCS/Makefile.tmp.p'.
Trying pattern rule with stem 'Makefile.tmp.p'.
Trying implicit prerequisite 's.Makefile.tmp.p'.
Trying pattern rule with stem 'Makefile.tmp.p'.
Trying implicit prerequisite 'SCCS/s.Makefile.tmp.p'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.web'.
Looking for a rule with intermediate file 'Makefile.tmp.web'.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'Makefile.tmp.web'.
Trying implicit prerequisite 'Makefile.tmp.web,v'.
Trying pattern rule with stem 'Makefile.tmp.web'.
Trying implicit prerequisite 'RCS/Makefile.tmp.web,v'.
Trying pattern rule with stem 'Makefile.tmp.web'.
Trying implicit prerequisite 'RCS/Makefile.tmp.web'.
Trying pattern rule with stem 'Makefile.tmp.web'.
Trying implicit prerequisite 's.Makefile.tmp.web'.
Trying pattern rule with stem 'Makefile.tmp.web'.
Trying implicit prerequisite 'SCCS/s.Makefile.tmp.web'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.f'.
Looking for a rule with intermediate file 'Makefile.tmp.f'.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.F'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.r'.
Trying pattern rule with stem 'Makefile.tmp.f'.
Trying implicit prerequisite 'Makefile.tmp.f,v'.
Trying pattern rule with stem 'Makefile.tmp.f'.
Trying implicit prerequisite 'RCS/Makefile.tmp.f,v'.
Trying pattern rule with stem 'Makefile.tmp.f'.
Trying implicit prerequisite 'RCS/Makefile.tmp.f'.
Trying pattern rule with stem 'Makefile.tmp.f'.
Trying implicit prerequisite 's.Makefile.tmp.f'.
Trying pattern rule with stem 'Makefile.tmp.f'.
Trying implicit prerequisite 'SCCS/s.Makefile.tmp.f'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.F'.
Looking for a rule with intermediate file 'Makefile.tmp.F'.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'Makefile.tmp.F'.
Trying implicit prerequisite 'Makefile.tmp.F,v'.
Trying pattern rule with stem 'Makefile.tmp.F'.
Trying implicit prerequisite 'RCS/Makefile.tmp.F,v'.
Trying pattern rule with stem 'Makefile.tmp.F'.
Trying implicit prerequisite 'RCS/Makefile.tmp.F'.
Trying pattern rule with stem 'Makefile.tmp.F'.
Trying implicit prerequisite 's.Makefile.tmp.F'.
Trying pattern rule with stem 'Makefile.tmp.F'.
Trying implicit prerequisite 'SCCS/s.Makefile.tmp.F'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.r'.
Looking for a rule with intermediate file 'Makefile.tmp.r'.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'Makefile.tmp'.
Rejecting impossible implicit prerequisite 'Makefile.tmp.l'.
Trying pattern rule with stem 'Makefile.tmp.r'.
Trying implicit prerequisite 'Makefile.tmp.r,v'.
Trying pattern rule with stem 'Makefile.tmp.r'.
Trying implicit prerequisite 'RCS/Makefile.tmp.r,v'.
Trying pattern rule with stem 'Makefile.tmp.r'.
Trying implicit prerequisite 'RCS/Makefile.tmp.r'.
Trying pattern rule with stem 'Makefile.tmp.r'.
Trying implicit prerequisite 's.Makefile.tmp.r'.
Trying pattern rule with stem 'Makefile.tmp.r'.
Trying implicit prerequisite 'SCCS/s.Makefile.tmp.r'.
Trying pattern rule with stem 'Makefile.tmp'.
Rejecting impossible implicit prerequisite 'Makefile.tmp.F'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.m'.
Looking for a rule with intermediate file 'Makefile.tmp.m'.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.ym'.
Trying pattern rule with stem 'Makefile.tmp.m'.
Trying implicit prerequisite 'Makefile.tmp.m,v'.
Trying pattern rule with stem 'Makefile.tmp.m'.
Trying implicit prerequisite 'RCS/Makefile.tmp.m,v'.
Trying pattern rule with stem 'Makefile.tmp.m'.
Trying implicit prerequisite 'RCS/Makefile.tmp.m'.
Trying pattern rule with stem 'Makefile.tmp.m'.
Trying implicit prerequisite 's.Makefile.tmp.m'.
Trying pattern rule with stem 'Makefile.tmp.m'.
Trying implicit prerequisite 'SCCS/s.Makefile.tmp.m'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.ym'.
Looking for a rule with intermediate file 'Makefile.tmp.ym'.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'Makefile.tmp.ym'.
Trying implicit prerequisite 'Makefile.tmp.ym,v'.
Trying pattern rule with stem 'Makefile.tmp.ym'.
Trying implicit prerequisite 'RCS/Makefile.tmp.ym,v'.
Trying pattern rule with stem 'Makefile.tmp.ym'.
Trying implicit prerequisite 'RCS/Makefile.tmp.ym'.
Trying pattern rule with stem 'Makefile.tmp.ym'.
Trying implicit prerequisite 's.Makefile.tmp.ym'.
Trying pattern rule with stem 'Makefile.tmp.ym'.
Trying implicit prerequisite 'SCCS/s.Makefile.tmp.ym'.
Trying pattern rule with stem 'Makefile.tmp'.
Rejecting impossible implicit prerequisite 'Makefile.tmp.r'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.s'.
Looking for a rule with intermediate file 'Makefile.tmp.s'.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.S'.
Trying pattern rule with stem 'Makefile.tmp.s'.
Trying implicit prerequisite 'Makefile.tmp.s,v'.
Trying pattern rule with stem 'Makefile.tmp.s'.
Trying implicit prerequisite 'RCS/Makefile.tmp.s,v'.
Trying pattern rule with stem 'Makefile.tmp.s'.
Trying implicit prerequisite 'RCS/Makefile.tmp.s'.
Trying pattern rule with stem 'Makefile.tmp.s'.
Trying implicit prerequisite 's.Makefile.tmp.s'.
Trying pattern rule with stem 'Makefile.tmp.s'.
Trying implicit prerequisite 'SCCS/s.Makefile.tmp.s'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.S'.
Looking for a rule with intermediate file 'Makefile.tmp.S'.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'Makefile.tmp.S'.
Trying implicit prerequisite 'Makefile.tmp.S,v'.
Trying pattern rule with stem 'Makefile.tmp.S'.
Trying implicit prerequisite 'RCS/Makefile.tmp.S,v'.
Trying pattern rule with stem 'Makefile.tmp.S'.
Trying implicit prerequisite 'RCS/Makefile.tmp.S'.
Trying pattern rule with stem 'Makefile.tmp.S'.
Trying implicit prerequisite 's.Makefile.tmp.S'.
Trying pattern rule with stem 'Makefile.tmp.S'.
Trying implicit prerequisite 'SCCS/s.Makefile.tmp.S'.
Trying pattern rule with stem 'Makefile.tmp'.
Rejecting impossible implicit prerequisite 'Makefile.tmp.S'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.mod'.
Looking for a rule with intermediate file 'Makefile.tmp.mod'.
Avoiding implicit rule recursion.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'Makefile.tmp.mod'.
Trying implicit prerequisite 'Makefile.tmp.mod,v'.
Trying pattern rule with stem 'Makefile.tmp.mod'.
Trying implicit prerequisite 'RCS/Makefile.tmp.mod,v'.
Trying pattern rule with stem 'Makefile.tmp.mod'.
Trying implicit prerequisite 'RCS/Makefile.tmp.mod'.
Trying pattern rule with stem 'Makefile.tmp.mod'.
Trying implicit prerequisite 's.Makefile.tmp.mod'.
Trying pattern rule with stem 'Makefile.tmp.mod'.
Trying implicit prerequisite 'SCCS/s.Makefile.tmp.mod'.
Trying pattern rule with stem 'Makefile.tmp'.
Rejecting impossible implicit prerequisite 'Makefile.tmp.c'.
Trying pattern rule with stem 'Makefile.tmp'.
Rejecting impossible implicit prerequisite 'Makefile.tmp.cc'.
Trying pattern rule with stem 'Makefile.tmp'.
Rejecting impossible implicit prerequisite 'Makefile.tmp.C'.
Trying pattern rule with stem 'Makefile.tmp'.
Rejecting impossible implicit prerequisite 'Makefile.tmp.cpp'.
Trying pattern rule with stem 'Makefile.tmp'.
Rejecting impossible implicit prerequisite 'Makefile.tmp.p'.
Trying pattern rule with stem 'Makefile.tmp'.
Rejecting impossible implicit prerequisite 'Makefile.tmp.f'.
Trying pattern rule with stem 'Makefile.tmp'.
Rejecting impossible implicit prerequisite 'Makefile.tmp.F'.
Trying pattern rule with stem 'Makefile.tmp'.
Rejecting impossible implicit prerequisite 'Makefile.tmp.m'.
Trying pattern rule with stem 'Makefile.tmp'.
Rejecting impossible implicit prerequisite 'Makefile.tmp.r'.
Trying pattern rule with stem 'Makefile.tmp'.
Rejecting impossible implicit prerequisite 'Makefile.tmp.s'.
Trying pattern rule with stem 'Makefile.tmp'.
Rejecting impossible implicit prerequisite 'Makefile.tmp.S'.
Trying pattern rule with stem 'Makefile.tmp'.
Rejecting impossible implicit prerequisite 'Makefile.tmp.mod'.
Trying pattern rule with stem 'Makefile.tmp'.
Trying implicit prerequisite 'Makefile.tmp.sh'.
Looking for a rule with intermediate file 'Makefile.tmp.sh'.
Avoiding implicit rule recursion.
Trying pattern rule with stem 'Makefile.tmp.sh'.
Trying implicit prerequisite 'Makefile.tmp.sh,v'.
Trying pattern rule with stem 'Makefile.tmp.sh'.
Trying implicit prerequisite 'RCS/Makefile.tmp.sh,v'.
Trying pattern rule with stem 'Makefile.tmp.sh'.
Trying implicit prerequisite 'RCS/Makefile.tmp.sh'.
Trying pattern rule with stem 'Makefile.tmp.sh'.
Trying implicit prerequisite 's.Makefile.tmp.sh'.
Trying pattern rule with stem 'Makefile.tmp.sh'.
Trying implicit prerequisite 'SCCS/s.Makefile.tmp.sh'.
No implicit rule found for 'Makefile.tmp'.
Finished prerequisites of target file 'Makefile.tmp'.
No need to remake target 'Makefile.tmp'.
Updating goal targets....
Considering target file 'help'.
File 'help' does not exist.
Finished prerequisites of target file 'help'.
Must remake target 'help'.
CreateProcess(C:\cygwin64\bin\ls.exe,ls,...)
Main thread handle = 000000000000008C
但重要的可能是第一部分和最后一部分:
GNU Make 4.1
Built for Windows32
Copyright (C) 1988-2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
find_and_set_shell() path search set default_shell = C:/cygwin64/bin/sh.exe
Reading makefiles...
Reading makefile 'Makefile.tmp'...
Updating makefiles....
Considering target file 'Makefile.tmp'.
Looking for an implicit rule for 'Makefile.tmp'.
Trying pattern rule with stem 'Makefile.tmp'.
. . . .
. . . .
Trying implicit prerequisite 'SCCS/s.Makefile.tmp.sh'.
No implicit rule found for 'Makefile.tmp'.
Finished prerequisites of target file 'Makefile.tmp'.
No need to remake target 'Makefile.tmp'.
Updating goal targets....
Considering target file 'help'.
File 'help' does not exist.
Finished prerequisites of target file 'help'.
Must remake target 'help'.
CreateProcess(C:\cygwin64\bin\ls.exe,ls,...)
Main thread handle = 000000000000008C
因此,如您所见,它既不执行echo
命令也不执行ls
命令。如果我注释掉该shell
命令,我会看到该TESTING
消息回显到终端。
显然,DS-5make.exe
是为 Windows 构建的。从 Cygwin bash 调用它应该有问题吗?如果是这样,为什么这在 Win 7 机器上运行良好?
更新 2 含更多信息:
我重复了测试,这次是从 Windows 的CMD
提示符下运行的。我用ls
命令替换了 bshell
行中的dir
命令。令人惊讶的是,同样的行为CMD
也在发生!
因此,显然,问题出在'make
函数shell
调用上。