Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
cmd.exe中cygwin make中的通配符_Cmd_Makefile_Cygwin - Fatal编程技术网

cmd.exe中cygwin make中的通配符

cmd.exe中cygwin make中的通配符,cmd,makefile,cygwin,Cmd,Makefile,Cygwin,我试图创建一个简单的makefile,它将构建多个以src目录的子目录命名的工件。以下是我的目录结构: >find . . ./makefile ./src ./src/binA ./src/binA/main.java ./src/binB ./src/binB/main.cpp ./src/binC ./src/binC/main.scala 这是我试图使用的makefile。由于某种原因,当我在同一规则中同时使用模式和通配符时,二进制目标拒绝扩展其依赖项 >cat makef

我试图创建一个简单的makefile,它将构建多个以src目录的子目录命名的工件。以下是我的目录结构:

>find .
.
./makefile
./src
./src/binA
./src/binA/main.java
./src/binB
./src/binB/main.cpp
./src/binC
./src/binC/main.scala
这是我试图使用的makefile。由于某种原因,当我在同一规则中同时使用模式和通配符时,二进制目标拒绝扩展其依赖项

>cat makefile
dirs    :=      $(shell find src -mindepth 1 -type d)
all:    $(dirs:src/%=bin/%.exe)
        @echo $(dirs)
bin/%.exe:      src/%/*
        @echo "$@ <-- $^"
这就是我得到的错误

>make
make: *** No rule to make target `bin/binA.exe', needed by `all'.  Stop.

如何创建一个通用规则,将其依赖项正确扩展为基于其名称的子目录的内容

我可以通过将规则匹配器更改为bin/%.exe:$wildcard src/%/*并在此之前添加一个.SECONDARYEXPANSION:来实现这一点

>make
make: *** No rule to make target `bin/binA.exe', needed by `all'.  Stop.