makefile遇到的问题— is up to date

阅读: 评论:0

makefile遇到的问题— is up to date

makefile遇到的问题— is up to date

在讲述这个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代码后,可以正常运行。

修改后的代码如下:

        

本文发布于:2024-01-27 10:31:15,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/17063226711180.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:makefile   date
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23