让我更新SDK版本, 以前没看过编译的东西, 只好边学边搞, 现在遇到个难题:
新SDK里多了一个这样的正则表达式
DEPS_SED = $(CP) $(BLDDIR)/$*.d $(BLDDIR)/$*.tmp;\
$(ECHO) >> $(BLDDIR)/$*.tmp;\
$(SED) -e 's/\#.*//' -e 's/^[^:]*: *//' \
-e 's/ *\\$$//' -e '/^$$/ d' -e 's/$$/ :/' \
-e '/^ .$$/d' \
< $(BLDDIR)/$*.d >> $(BLDDIR)/$*.tmp; \
$(SED) -e 's|^\([^\/ ].*\.o\):|'$(BLDDIR)/'\1:|g' \
-e 's|.*?/\(.*\.o\):|'$(BLDDIR)/'\1:|g' \
-e 's| \([0-9a-zA-Z]\)| '$(SDK)/$(LOCALDIR)'\/\1|g' \
-e 's|^\([0-9a-zA-Z]\)|'$(SDK)/$(LOCALDIR)'/\1|g' \
-e 's| \(\.\.\/\)| '$(SDK)/$(LOCALDIR)'\/\1|g' \
-e 's|'$(SDK)'|'$$\{SDK\}'|g' \
< $(BLDDIR)/$*.tmp > $(BLDDIR)/$*.P;
我只能看出来操作上是先把 .o文件的依赖文件 .d复制成 .tmp, 然后做了两次替换, 最后生成 .p文件, 但是现在的结果是 .d里面有正确的头文件依赖关系, .tmp和 .d一样 .p是空文件. 正则表达式我刚开始学. 这个实在看不明白了. 求教一下有人能看懂这个到底要替换什么东西么?
有点明白了, $(SED)里应该是调用sed文本编辑器, 我没有在make.tool里指定编辑器. 导致生成的文件是空的.