makefile - 如何在 Makefile 命令中修改文件名
问题描述
我正在尝试根据makefile中的命令重命名输入->输出文件。例如“调整大小”、“加速”等。
我可以在文件顶部添加重命名块,例如更改后缀:
output := $(input:.mov=.mp4)
但据我所知,这在 make 命令中不起作用
check:
output := $(input:.mov=.mp4)
给
$ input=walkthrough.mov make check
output := walkthrough.mp4
make: output: No such file or directory
make: *** [check] Error 1
那么我将如何在每个 make-function 的基础上重命名文件,而不仅仅是每个 Makefile 一次?
@beta 提到了目标特定变量,但我似乎也无法使该语法正常工作。
check: output="foo"
@echo "input ${input}"
@echo "output ${output}"
错误:
$ input="blah" make check
Makefile:10: *** commands commence before first target. Stop.
解决方案
你不能将Make语法传递给shell, shell 不会知道你在说什么。
但是您可以使用特定于目标的变量:
check: output := $(input:.mov=.mp4)
check:
@echo $(output)
推荐阅读
- c# - Linq 按两个字段分组并取平均值
- angular - Angular Universal (SSR) - 在服务器端模拟 nativeElement 方法
- singly-linked-list - 带有标记节点的单链表的插入和删除之间的差异
- mysql - 如何将多个 SQL 选择合二为一
- javascript - 我正在尝试匹配多行字符串但无法正常工作
- angular - Angular 测试 - 无法解析 MyOverlayRef 的所有参数:(?, ?, ?)
- python - NameError:名称“配置文件”未定义
- django - 如何重定向最后一页访问 DJANGO PYTHON
- javascript - asp页面中的Javascript回调
- java - 设备无法在 Android Studio 上调试