3684|6

75

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

makefile的有关目标的问题? [复制链接]

我拿到一个makefile_A,看到里面有一下目标。
all: os app
但是这个makefile的最后又include了一个makefile_B。而且这个makefile里面也有all目标。
执行的时候,好像有时候执行了makefile_B的all目标,有时候又没有执行?

我被搞糊涂了,碰到里面有两个all目标的makefile,make是怎么执行的啊?两个all都执行还是,只是执行第一个all?

最新回复

all:         @echo first line all:         @echo second line 看一下上面这个例子: 碰到两个相同的目标,windows 下nmake, linux 下gmake 都会给出Warning 信息 但是, 但nmake 会执行第一个,显示first line, 而linux 下gmake 会执行第二个, 显示 second line. 确实,这样的书写会造成一定的混乱,但其执行过程还仍然是固定的。  详情 回复 发表于 2009-3-25 21:13
点赞 关注

回复
举报

59

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
自己顶一个吧
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
第一个是确定要执行的。
 
 
 

回复

62

帖子

0

TA的资源

一粒金砂(初级)

4
 
incluDe命令一般包含的是make定义文件或自动生成的倚赖信息文件,如incluDe foo.mk这样,
目标应写在一个文件中。
你这样包含并还有同名目标,是在制造混乱啊
 
 
 

回复

61

帖子

0

TA的资源

一粒金砂(初级)

5
 
引用 3 楼 yasky1001 的回复:
incluDe命令一般包含的是make定义文件或自动生成的倚赖信息文件,如incluDe foo.mk这样,
目标应写在一个文件中。
你这样包含并还有同名目标,是在制造混乱啊


是这样的,住makefile是生产.o, include的makefile文件是进行吧生产的.o文件进行打包长.a文件。后者比较通用,所以放到一个里面。

大家有没有这样的范例?
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

6
 
这种是多个makefile的情况,很正常牙,很多东西都是这样的。
make本来就不是执行与不执行。他会首先判断文件是否更新,只有更新了,才会根据规则来重新编译。
如果第二个makefile里面的目标都没有更新,自然就不用编译了
至于顺序,一般是先看子makefile的,不然要子makefile文件也没有意义。
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

7
 
all:
        @echo first line

all:
        @echo second line

看一下上面这个例子:
碰到两个相同的目标,windows 下nmake, linux 下gmake 都会给出Warning 信息
但是, 但nmake 会执行第一个,显示first line,
而linux 下gmake 会执行第二个, 显示 second line.

确实,这样的书写会造成一定的混乱,但其执行过程还仍然是固定的。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
【干货上新】电源解决方案和技术第二趴 | DigiKey 应用探索站
当月好物、电源技术资源、特色活动、DigiKey在线实用工具,干货多多~

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网 7

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表