Makefile 为什么GNU使进程挂起?

Makefile 为什么GNU使进程挂起?,makefile,cygwin,windows-10,gnu-make,ds-5,Makefile,Cygwin,Windows 10,Gnu Make,Ds 5,TL;博士: 在新安装的Windows10上,我安装了ARMDS-5V5.26.2开发工具。我正在使用它的make.exe从Cygwin命令行或Eclipse IDE的构建设置构建我们的项目 我们的Makefile包含以下行: uname_result := $(shell uname -s) 但只要make到达这条线,它就会被卡住。这发生在bash终端和窗口的命令提示符上 更新3: 经过更多的故障排除,问题似乎是DS-5的make实用程序本身。我在我的Cygwin安装中添加了make,并使用

TL;博士:

在新安装的Windows10上,我安装了ARMDS-5V5.26.2开发工具。我正在使用它的make.exe从Cygwin命令行或Eclipse IDE的构建设置构建我们的项目

我们的Makefile包含以下行:

uname_result := $(shell uname -s)
但只要make到达这条线,它就会被卡住。这发生在bash终端和窗口的命令提示符上

更新3:

经过更多的故障排除,问题似乎是DS-5的make实用程序本身。我在我的Cygwin安装中添加了make,并使用了它,现在我的构建运行正常

现在的问题是为什么ARM的版本在我的Win 10机器上不工作,而在Win 7上它曾经工作得很好

长版本:

在我的工作电脑上使用Windows7两年后,我刚刚在我的工作电脑上彻底安装了Windows10。在过去的两天里,我正在重新安装我们的工具并恢复状态。不幸的是,我现在只能忍受让我头疼的制造

我们使用ARM的DS-5工具集开发嵌入式固件。该项目是一个Makefile项目,因此我们不使用内置的eclipsebuilder。为了在Eclipse环境之外构建该项目,我安装了Cygwin以获得一个方便的bash CLI。make和clang都是DS-5安装的一部分

当我在项目的Makefile form CLI上运行make时,执行会无限期地停滞

[…在问题揭示过程之后删除一个长篇大论…]

追查问题根源后,我发现问题出在这一行:

uname_result := $(shell uname -s 2>NUL)
为了简化它,我验证了问题在于shell命令本身。我用下面的命令制作了一个非常简单的Makefile,它也被卡住了:

uname_result := $(shell ls)
当使用make-d处理makefile时,当它到达该行时,我得到以下结果:

CreateProcess(C:\cygwin64\bin\ls.exe,ls,...)
Main thread handle = 000000000000009C
为什么不能执行shell命令?这个完全相同的脚本在迁移之前工作得很好

更新1 w/更多信息:

我的系统上只有一个make.exe,位于C:\DS-5_v5.26.2\bin

我创建了一个简化的makefile,makefile.tmp:

我从Cygwin的bash CLI处理此生成文件:

$ /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命令,我会看到测试消息回显到终端

显然,DS-5的make.exe是为Windows构建的。从Cygwin bash调用它会有问题吗?如果是这样,为什么在Win 7机器上工作得很好

更新2 w/更多信息:

我重复了测试,这次是从Windows的CMD提示符运行的。我用dir命令替换了bshell行中的ls命令。令人惊讶的是,同样的行为也发生在CMD上


显然,问题在于make的shell函数调用。

与ARM支持部门联系后,我得到了以下回复:

With regards to the problem you are seeing this is a known issue with GNU 
make version 4.1 supplied by ARM with DS5.  This version of make was shipped 
with DS5 versions 5.23 to 5.26. DS5-5.22 used make 3.81, and DS5-5.27 and 
later have used make 4.2 - neither of which suffer from this defect.

There are three possible workarounds in your case:
1 - Avoid using the "shell" command in your make script - this is probably 
not ideal!
2 - Upgrade your DS-5 version to 5.27 or later - this may or may not be an 
option for you.
3 - Download[*] a different version of GNU make and use it in place of the 
version 3.81 that was supplied with your current version of DS-5.

[*] - Although make is freely available under GPL, unfortunately there are 
legal implications involved with its redistribution which is why I can't 
simply email you an alternative version of make.

多亏了ARM支持部的Alex。

您还有其他品牌吗?主线程句柄不在cygwin make中,仅适用于Windowsbuild@matzeri-AFAICT,我仅有的make.exe在C:\DS-5_v5.26.2\bin中。此外,在我用来调用make的shell脚本中,我明确地拥有make程序的完整路径。更新了问题并提供了更多信息。您找到了解决方案吗?我对DS-5.23也有同样的问题。1@Satrapes-您是否阅读了TL的更新3;博士我使用的是Cygwin的make,而不是DS-5附带的make。感谢您继续关注。基本上,他的第三个建议是对我有效的解决方案,使用Cygwin的make。
With regards to the problem you are seeing this is a known issue with GNU 
make version 4.1 supplied by ARM with DS5.  This version of make was shipped 
with DS5 versions 5.23 to 5.26. DS5-5.22 used make 3.81, and DS5-5.27 and 
later have used make 4.2 - neither of which suffer from this defect.

There are three possible workarounds in your case:
1 - Avoid using the "shell" command in your make script - this is probably 
not ideal!
2 - Upgrade your DS-5 version to 5.27 or later - this may or may not be an 
option for you.
3 - Download[*] a different version of GNU make and use it in place of the 
version 3.81 that was supplied with your current version of DS-5.

[*] - Although make is freely available under GPL, unfortunately there are 
legal implications involved with its redistribution which is why I can't 
simply email you an alternative version of make.