对 makefile中 order-only 前提条件的理解

简介:
“order-only”依赖的使用举例:

    LIBS = libtest.a

foo : foo.c | $(LIBS)

       $(CC) $(CFLAGS) $< -o $@ $(LIBS)

make在执行这个规则时,如果目标文件“foo”已经存在。当“foo.c”被修改以后,目标“foo”将会被重建,但是当“libtest.a”被修改以后。将不执行规则的命令来重建目标“foo”。

 

还是自己做一个小例子会比较爽:

LIBS=lib.a
foo: foo.c | $(LIBS)
    touch foo
    @echo "gao"
在 foo.c 文件 和 lib.a 文件都存在的情况下。

执行 make 的结果是:

显示 

touch goo

gao

而 此时修改 lib.a 文件,再执行 make:

foo is up to date


本文转自健哥的数据花园博客园博客,原文链接:http://www.cnblogs.com/gaojian/archive/2012/09/18/2690899.html,如需转载请自行联系原作者
目录
相关文章
|
6月前
|
测试技术 编译器 vr&ar
CMake深度解析:掌握add_custom_command,精通Makefile生成规则(一)
CMake深度解析:掌握add_custom_command,精通Makefile生成规则
513 1
|
6月前
|
存储 Linux C++
CMake深度解析:掌握add_custom_command,精通Makefile生成规则(二)
CMake深度解析:掌握add_custom_command,精通Makefile生成规则
302 0
|
4月前
|
分布式计算 监控 调度
ODPS问题之在发布ODPS任务时,使用exclude和extra选项如何解决
ODPS问题之在发布ODPS任务时,使用exclude和extra选项如何解决
|
5月前
|
分布式计算 大数据 数据处理
MaxCompute操作报错合集之出现无法在 information_schema.TASKS_HISTORY 表中查询到特定类型的 DI 上线任务记录,该怎么办
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
|
4月前
|
运维 Java Devops
阿里云云效操作报错合集之进行Maven打包时,遇到报错"ERR: No email loop found by ",该怎么办
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
|
5月前
|
分布式计算 DataWorks 大数据
MaxCompute操作报错合集之服务器迁移时,出现"The specified project or table name is not valid or missing"的错误,该怎么解决
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
|
C语言
makefile make 的隐式规则
makefile make 的隐式规则
60 0
|
6月前
|
Unix Linux Shell
CMake深度解析:掌握add_custom_command,精通Makefile生成规则(三)
CMake深度解析:掌握add_custom_command,精通Makefile生成规则
1378 1
Makefile基础教程(make的隐式规则)
Makefile基础教程(make的隐式规则)
105 0
|
SQL Oracle 关系型数据库
DBeaver同时执行多条insert into报错处理
DBeaver同时执行多条insert into报错处理
DBeaver同时执行多条insert into报错处理