Via*_* On 3 unix linux makefile gnu-make
我需要创建一个包含目录的数组,然后对其进行 inerate,在每个步骤中再创建一个数组,其中将包括通过每个 derictory 的“find”命令找到的所有文件,并迭代该数组。我试图做这样的事情:
declare -a arr=(a b c) ;\
for key in "$${arr[@]}" ; do \
...
done\
Run Code Online (Sandbox Code Playgroud)
但它不起作用。即使这样也会出错:
all:
declare -a array=(a b c) ;\
echo "$${array[1]}" \
Run Code Online (Sandbox Code Playgroud)
得到错误:
/bin/sh: 1: Syntax error: "(" unexpected
Makefile:4: recipe for target 'gg' failed
make: *** [gg] Error 2
Run Code Online (Sandbox Code Playgroud)
/bin/sh这是因为 make在运行配方时总是调用(POSIX shell),除非您以不同的方式告诉它。您使用的语法特定于/bin/bashshell,在/bin/sh.
如果您想使用以下命令运行您的食谱,/bin/bash您必须通过将以下内容添加到您的 makefile 中来明确告诉 make 这样做:
SHELL := /bin/bash
Run Code Online (Sandbox Code Playgroud)
请参阅For 循环 in makefile 不起作用以获得另一个答案。
| 归档时间: |
|
| 查看次数: |
2880 次 |
| 最近记录: |