makefile遇到的问题— is up to date

本文介绍了Makefile的基本规则,包括目标(target)、依赖文件(prerequisites)和命令(command),并展示了如何处理因目标文件名与Makefile中target名相同导致的冲突问题。在例子中,首次执行时能正常生成seed文件,但再次执行时因文件已存在引发冲突。解决办法是修改Makefile避免使用相同文件名作为target。
部署运行你感兴趣的模型镜像

在讲述这个Makefile之前,还是让我们先来粗略地看一看Makefile的规则。

    target ... : prerequisites ...
            command
            ...
            ...

    target也就是一个目标文件,可以是Object File,也可以是执行文件。还可以是一个标签(Label),对于标签这种特性,在后续的“伪目标”章节中会有叙述。

    prerequisites就是,要生成那个target所需要的文件或是目标。

    command也就是make需要执行的命令。(任意的Shell命令)

这是一个文件的依赖关系,也就是说,target这一个或多个的目标文件依赖于prerequisites中的文件,其生成规则定义在command中。说白一点就是说,prerequisites中如果有一个以上的文件比target文件要新的话,command所定义的命令就会被执行。这就是Makefile的规则。也就是Makefile中最核心的内容。

编写makefile脚本的时候,想实现每次放在保存seed到文件seed中,如下图所示:

在首次执行make seed的时候,正常执行,但第二次执行的时候,就遇到下面的问题。

:make seed
make: `seed' is up to date.

这是由于首次执行的时候,当前目录下面没有seed文件,所以不会与makefile中的target seed有冲突,但是第二次再执行的时候,当前目录下面已经有seed文件生成,从而使得与makefile中的target seed产生冲突而报错。

解决办法:

尽量避免当面目录下文件名字与makefile中target的名字相同,所以通过修改makefile代码后,可以正常运行。

修改后的代码如下:

        

您可能感兴趣的与本文相关的镜像

Seed-Coder-8B-Base

Seed-Coder-8B-Base

文本生成
Seed-Coder

Seed-Coder是一个功能强大、透明、参数高效的 8B 级开源代码模型系列,包括基础变体、指导变体和推理变体,由字节团队开源

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值