- 最后登录
- 2013-4-14
- 威望
- 0
- 金钱
- 50
- 贡献
- 0
- 注册时间
- 2013-4-5
- 阅读权限
- 20
- 帖子
- 12
- 精华
- 0
- 积分
- 62
- UID
- 251
 
该用户从未签到 - 最后登录
- 2013-4-14
- 威望
- 0
- 金钱
- 50
- 贡献
- 0
- 注册时间
- 2013-4-5
- 积分
- 62
- 帖子
- 12
- 主题
- 3
- 精华
- 0
- UID
- 251
|
在工具生成的makefile中,只要有kernel,都应该在\kernel_build\kernel\current\中用一个makefile,有这么一句话:
$(LIBRARY).stamp: $(OBJECTS)
$(AR) rcs $(PREFIX)/lib/$(@:.stamp=) $(foreach obj,$?,$(if $(obj:%.o=),$(dir $(obj))$(OBJECT_PREFIX)_$(notdir $(obj:.o.d=.o)),$(obj)))
@cat $(foreach obj,$^,$(obj:.o=.o.d)) > $(@:.stamp=.deps)
@touch $@
这个应该是将生成的.o文件加入到libtarget.a打包文件中,这里面$(@:.stamp=)这一句好像是说将libtarget.a.stamp用libtarget.a替换。但是关于$(@:.stamp=)的用法,在GNU的MAKEFILE手册中找不到相关的用法,关于@只有用在@echo,或$@,或$(@D)等用法。只能通过$@表示目标的值,那么@是表示目标变量这样才能说通。
版主,又要麻烦你跟我找一找啦 |
|