您现在的位置是:主页 > news > 做h5网站公司/谷歌搜索引擎免费入口
做h5网站公司/谷歌搜索引擎免费入口
admin2025/5/29 23:20:22【news】
简介做h5网站公司,谷歌搜索引擎免费入口,seo策略怎么写举例,招聘网站分析如何做通过一些尝试目前能够完成自动推导,关键点在.d文件。可以看下传统嵌入式IDE编译出来的obj下面一般也会有.d文件,比如ARM-MDK。大部分makefile中都会使用DEPS来表达这个依赖。其他如果出现.c和.S文件在一个目录下建议将他们分开。关键技巧# $(var:pattern…
做h5网站公司,谷歌搜索引擎免费入口,seo策略怎么写举例,招聘网站分析如何做通过一些尝试目前能够完成自动推导,关键点在.d文件。可以看下传统嵌入式IDE编译出来的obj下面一般也会有.d文件,比如ARM-MDK。大部分makefile中都会使用DEPS来表达这个依赖。其他如果出现.c和.S文件在一个目录下建议将他们分开。关键技巧# $(var:pattern…


通过一些尝试目前能够完成自动推导,关键点在.d文件。可以看下传统嵌入式IDE编译出来的obj下面一般也会有.d文件,比如ARM-MDK。
大部分makefile中都会使用+DEPS来表达这个依赖。其他如果出现.c和.S文件在一个目录下建议将他们分开。

关键技巧
# $(var:pattern=replacement) 等同于 $(patsubst pattern,replacement,$(var))
调整输出更优雅
# @$(ECHO) "033[1;31m[OK]033[0m" 打印信息加粗带颜色
# @$(ECHO) "033[31m[OK]033[0m" 打印信息带颜色
使用if-fi来检测dir是否存在并执行创建
# @if [ ! -d $(dir $@) ]; then mkdir -p $(dir $@); fi;
subst替换路径指令结合patsubst指令来回替换
将.o文件放到project下面的output中 objout在头文件中指定
CXXSRC += $(wildcard $(CPUDIR)/*.c)
OBJECT += $(subst $(TOPPATH),$(OBJOUT),$(patsubst %.c,%.o,$(CXXSRC)))
$(OBJECT):@if [ ! -d $(dir $@) ]; then mkdir -p $(dir $@); fi;@$(CC) -o $@ $(CFLAGSLIB) -c $(patsubst %.o,%.c,$(subst $(OBJOUT),$(TOPPATH),$@))
自动推导依赖 可以观察CC使用-MM指令生成的原始文件 其他指令是对文件进行操作
$(DEPENT):@if [ ! -d $(dir $@) ]; then mkdir -p $(dir $@); fi; set -e; $(RM) $@@$(ECHO) "[DD] $(notdir $@)"@$(CC) -MM $(CFLAGSLIB) -c $(patsubst %.d,%.c,$(subst $(OBJOUT),$(TOPPATH),$@)) -o $@.dep@sed 's,($(notdir $(basename $@))).o[ :]*,$(dir $@)1.o $@ :,g' < $@.dep > $@; $(RM) $@.dep

# src makefile
include ../project/makefile.common# $(var:pattern=replacement) == $(patsubst pattern,replacement,$(var))
TARGET := $(APPNAME).so
CXXSRC += $(wildcard $(SRCDIR)/*.c)
OBJECT += $(subst $(TOPPATH),$(OBJOUT),$(patsubst %.c,%.o,$(CXXSRC)))
DEPENT += $(subst $(TOPPATH),$(OBJOUT),$(patsubst %.c,%.d,$(CXXSRC)))$(OBJECT):@if [ ! -d $(dir $@) ]; then mkdir -p $(dir $@); fi;@$(ECHO) "[CC] $(notdir $@)"@$(CC) -o $@ $(CFLAGS) -c $(patsubst %.o,%.c,$(subst $(OBJOUT),$(TOPPATH),$@))$(DEPENT):@if [ ! -d $(dir $@) ]; then mkdir -p $(dir $@); fi; set -e; $(RM) $@@$(ECHO) "[DD] $(notdir $@)"@$(CC) -MM $(CFLAGS) -c $(patsubst %.d,%.c,$(subst $(OBJOUT),$(TOPPATH),$@)) -o $@.dep@sed 's,($(notdir $(basename $@))).o[ :]*,$(dir $@)1.o $@ :,g' < $@.dep > $@; $(RM) $@.dep-include $(DEPENT)vpath %.c $(dir %(CXXSRC))all: $(TARGET)
src: $(TARGET)$(TARGET): $(OBJECT)@$(ECHO) [AR] $@@$(AR) cr $(LIBOUT)/$@ $(OBJECT)@$(ECHO) "033[1;31m[OK]033[0m".PHONY: src clean tshowclean:@$(RM) $(OBJECT)@$(ECHO) [RM] $(TARGET)@$(RM) $(addprefix $(LIBOUT)/, $(TARGET))@$(RM) $(DEPENT)@$(ECHO) "033[1;31m[OK]033[0m"
供参考,以上基本的Makefile最小工程已经搭建好了,目前未添加任何hal库或者其他文件。
只含有特定 cpu头文件 / 启动文件 / main执行之前的SystemInit函数,待新增uart调试输出相关文件和最精简的日志系统。写代码第一步得有一个易用的 log / assert 非常重要。