语法:makefile
差别
这里会显示出您选择的修订版和当前版本之间的差别。
| 后一修订版 | 前一修订版 | ||
| 语法:makefile [2026/08/27 15:47] – 创建 user01 | 语法:makefile [2026/08/29 13:59] (当前版本) – [2. 根据文件内容循环执行] user01 | ||
|---|---|---|---|
| 行 3: | 行 3: | ||
| ===== - for ===== | ===== - for ===== | ||
| - | < | + | < |
| NAME := a b c | NAME := a b c | ||
| run: | run: | ||
| 行 10: | 行 10: | ||
| done | done | ||
| </ | </ | ||
| + | |||
| + | ===== - 根据文件内容循环执行 ===== | ||
| + | 根据gen.txt文件内容,在makefile中循环执行。 | ||
| + | |||
| + | 输入文件: | ||
| + | < | ||
| + | > cat gen.txt | ||
| + | items = a b c | ||
| + | </ | ||
| + | |||
| + | Makefile文件: | ||
| + | <code cmake> | ||
| + | run1: | ||
| + | @line=$$(head -n1 gen.txt); \ | ||
| + | tile_list=$$(echo " | ||
| + | for tile in $$tile_list; | ||
| + | echo " | ||
| + | done | ||
| + | |||
| + | |||
| + | ITEMS = $(shell head -n1 gen.txt | awk ' | ||
| + | run2: | ||
| + | @for tile in $(ITEMS); do \ | ||
| + | echo " | ||
| + | done | ||
| + | |||
| + | ITEMS_3 = $(shell head -n1 gen.txt | awk ' | ||
| + | run3: | ||
| + | @for tile in $(ITEMS_3); do \ | ||
| + | echo " | ||
| + | done | ||
| + | |||
| + | ITEMS_4 = $(shell head -n1 gen.txt | awk ' | ||
| + | run4: | ||
| + | @for tile in $(ITEMS_4); do \ | ||
| + | echo " | ||
| + | done | ||
| + | </ | ||
| + | |||
| + | 执行结果: | ||
| + | < | ||
| + | > make run1 | ||
| + | process tile: a | ||
| + | process tile: b | ||
| + | process tile: c | ||
| + | |||
| + | > make run2 | ||
| + | process tile: a | ||
| + | process tile: b | ||
| + | process tile: c | ||
| + | |||
| + | > make run3 | ||
| + | process tile: abc | ||
| + | |||
| + | > make run4 | ||
| + | process tile: abc | ||
| + | </ | ||
| + | |||
| + | |||
语法/makefile.1787816867.txt.gz · 最后更改: 2026/08/27 15:47 由 user01