makefile 中 .IGNORE
时间: 2024-08-15 07:08:20 浏览: 75
在Makefile中,`.IGNORE`是一个特殊的规则,用于告诉make命令忽略指定行或一组规则。当你不想让某些特定错误信息或者注释行影响make任务的构建过程时,可以使用`.IGNORE`来排除它们。例如:
```makefile
.IGNORE:
# 这是一些注释行,make会忽略并继续处理后续的规则
*.o: %.cpp
$(CC) -c $(CPPFLAGS) $(CFLAGS) $< -o $@
```
在这个例子中,如果`*.o: %.cpp`规则有误,make不会因为这个错误停止,而是跳过包含`.IGNORE`行的部分,继续执行其他规则。注意`.IGNORE`规则通常位于文件顶部,单独一行,并且不需要跟任何命令关联。
相关问题
makefile伪目标
Makefile中的伪目标是指那些不对应任何实际文件,只是用来指定一些特殊操作或规则的目标。它们通常以“.”开头,比如“.PHONY”、“.DEFAULT”等。伪目标的作用是告诉make工具在执行时不要将其作为文件名或依赖项来处理,而是按照特定的规则进行处理。
常见的伪目标有:
1. .PHONY:指定一些“虚拟”的目标,比如“clean”、“install”等,用于执行特定的操作而不是生成文件。
2. .DEFAULT:指定默认的目标,当make没有指定目标时,就会执行该伪目标。
3. .SUFFIXES:指定所有可识别的后缀名。
4. .PRECIOUS:指定一些目标,当make被中断时,会将这些目标保存下来,以便下次从这些目标开始继续执行。
5. .IGNORE:指定忽略某些错误,使得make不会因为这些错误而停止执行。
6. .SECONDARY:指定一些目标为次要目标,当这些次要目标被删除或更新时,不会影响其他目标的生成。
makefile设置警报等级
在 Makefile 中设置警报等级可以通过在命令前添加@、-、+ 等符号来实现。
- @ 表示不显示命令本身,只显示命令的输出结果。
- - 表示忽略命令执行时返回的错误码,继续执行下一个命令。
- + 表示强制执行该命令,即使 Makefile 中设置了 -i 参数。
例如:
```
target:
@echo "Hello, world!" # 不显示命令本身,只显示输出结果
-rm file.txt # 忽略命令执行时返回的错误码
+echo "This command will always be executed." # 强制执行该命令
```
需要注意的是,@、-、+ 符号只对当前命令有效,不会影响后续的命令。如果需要对整个 Makefile 设置警报等级,可以在命令前添加 .SILENT 或 .IGNORE 或 .KEEP_STATE 等关键字。
阅读全文