Makefile 中书写shell命令时可以加2种前缀 @ 和 -, 或者不用前缀.
3种格式的shell命令区别如下:
- 不用前缀 :: 输出执行的命令以及命令执行的结果, 出错的话停止执行
- 前缀 @ :: 只输出命令执行的结果, 出错的话停止执行;命令不会被make显示出来
- 前缀 - :: 命令执行有错的话, 忽略错误, 继续执行
例:命令前面添加-,表示如果此处有问题即此处目录或文件不存在是,makefile会忽略此错误继续往下执行
反之:如果文件不存在,以下两种都会终止执行
---------------------------------------------------------------------------------------------------------------------------------------
另一种方法则是判断此文件或路径是否存在,存在再做其他动作
$(wildcard $FILE) 它被展开为已经存在的、使用空格分开的、匹配此模式的所有文件列表。如果不存在任何符合此模式的文件,函数会忽略模式字符并返回空。