如何在Makefile目标中定义局部变量?
我想避免重复文件名,例如:
zsh:
FILENAME := "text.txt"
@echo "Copying ${FILENAME}...";
scp "${FILENAME}" "user@host:/home/user/${FILENAME}"
Run Code Online (Sandbox Code Playgroud)
但我收到错误:
FILENAME := "text.txt"
/bin/sh: FILENAME: command not found
Run Code Online (Sandbox Code Playgroud)
与相同$(FILENAME)
试
zsh:
export FILENAME="text.txt"
@echo "Copying ${FILENAME} to $(EC2)";
Run Code Online (Sandbox Code Playgroud)
给我一个空值:
Copying ...
Run Code Online (Sandbox Code Playgroud)
Mad*_*ist 12
您不能在配方中定义 make 变量。配方在 shell 中运行,并且必须使用shell 语法。
如果要定义 make 变量,请在配方外部定义它,如下所示:
FILENAME := text.txt
zsh:
@echo "Copying ${FILENAME}...";
scp "${FILENAME}" "user@host:/home/user/${FILENAME}"
Run Code Online (Sandbox Code Playgroud)
请注意,在将值分配给 make 变量时,在值周围添加引号实际上是不正确的。Make 不关心引号(在变量值或扩展中),也不以任何方式特殊对待它们。
| 归档时间: |
|
| 查看次数: |
12650 次 |
| 最近记录: |