当前位置: 首页 > news >正文

做网站聚合做权重难吗如何自己开发网站

做网站聚合做权重难吗,如何自己开发网站,门户建设是什么意思,网上做家教的网站为什么写这个呢,其实我有系统学过Makefile和CMake。但是因为用的不是很多或者说没有深入的使用场景,导致我不是很熟练,或者说没法优雅地使用。刚好最近对Linux的嵌入式编程比较感兴趣,借着demo来分析一下资深工程师写的Makefile&a…

为什么写这个呢,其实我有系统学过Makefile和CMake。但是因为用的不是很多或者说没有深入的使用场景,导致我不是很熟练,或者说没法优雅地使用。刚好最近对Linux的嵌入式编程比较感兴趣,借着demo来分析一下资深工程师写的Makefile,学习一下。由易到难吧,先来第一个,是一个GPIO的Makefile。

Makefile文件

BIN = test_gpio  
CC = $(CROSS)gcc  
CPP = $(CROSS)g++  
LD = $(CROSS)ld  
#
INCS = 
LIBS =  
SUBDIRS =  
#
DEFINC = -I ./ \# LIBVAR =-shared -fPIE -L.
#
INCS += $(DEFINC)  
LIBS +=$(LIBVAR)
#  
CSRCS = $(wildcard *.c)  
CPPSRCS = $(wildcard *.cpp)  
#  
COBJS := $(CSRCS:.c=.o)  
CPPOBJS := $(CPPSRCS:.cpp=.o)  
#  
CFLAGS += $(INCS)  
CFLAGS += -O2 -Wall -g -fPIE
CPPFLAGS += $(INCS)  
CPPFLAGS += -O2 -Wall -g -fPIE
LDFLAGS += -lm -lrt -lstdc++ -ldlall:$(BIN)  
$(COBJS) : %.o: %.c  $(CC) $(CFLAGS) -c $< -o $@   
$(CPPOBJS) : %.o: %.cpp  $(CPP) $(CPPFLAGS) -c $< -o $@ $(BIN) : $(COBJS) $(CPPOBJS)  $(CC) -o $(BIN)    $(COBJS) $(CPPOBJS) $(LDFLAGS) $(LIBS)    rm -rf $(COBJS)  rm -rf $(CPPOBJS)  .PHONY:clean cleanall  clean:              rm  -rf $(BIN) $(COBJS) $(CPPOBJS)  
#rm *.d  
cleanall:  rm $(BIN) $(COBJS) $(CPPOBJS)  

拆解分析

BIN = gpio_red_blink
CC = $(CROSS)gcc
CPP = $(CROSS)g++
LD = $(CROSS)ld
  • 定义了变量BIN,表示生成可执行文件名为gpio_red_blink
  • 定义变量CC,表示使用的C编译器为$(CROSS)gcc(其中$(CROSS)是一个可能存在的前缀
  • 定义变量CPP,表示使用的C++编译器为$(CROSS)g++
  • 定义变量LD,表示使用的链接器为$(CROSS)ld
INCS =
LIBS =
SUBDIRS =
  • 定义空变量INCELIBSSUBDIRS
DEFINC = -I ./ \
  • 定义变量DEFINC,指定编译过程中需要包含的头文件路径。这里设置为当前路径
INCS += $(DEFINC)
LIBS +=$(LIBVAR)
  • DEFINC添加到INCS
  • 将未定义变量LIBVAR添加到LIBS
CSRCS = $(wildcard *.c)
CPPSRCS = $(wildcard *.cpp)
  • 使用通配符,将当前目录所有.c文件加入到CSRCS变量中
  • 使用通配符,将当前目录所有.cpp文件加入到CSRCS变量中
COBJS := $(CSRCS:.c=.o)
CPPOBJS := $(CPPSRCS:.cpp=.o)
  • CSRCS中所有.c文件扩展名替换为.o,并且赋值给COBJS
  • CPPSRCS中所有,cpp文件扩展名替换为.o,并且赋值给CPPOBJS
CFLAGS += $(INCS)
CFLAGS += -O2 -Wall -g -fPIE
CPPFLAGS += $(INCS)
CPPFLAGS += -O2 -Wall -g -fPIE
LDFLAGS += -lm -lrt -lstdc++ -ldl -lpthread
  • INCS分别添加到CFLAGSCPPFLAGS,指定了编译包含头文件路径
  • -O2 -Wall -g -fPIE添加到CFLAGSCPPFLAGS,表示编译选项
  • -lm -lrt -lstdc++ -ldl -lpthread,添加到LDFLAGS中,表示链接选项
all:$(BIN)
  • 定义了一个目标叫做all
  • 依赖于可执行文件$(BIN)
$(COBJS) : %.o: %.c$(CC) $(CFLAGS) -c $< -o $@
  • 定义了一个规则模式,将.c文件编译为.o文件
  • %表示通配符,任意字符
  • $<表示第一个依赖的文件,即.c文件
  • $@表示目标文件,即.o文件
$(CPPOBJS) : %.o: %.cpp$(CPP) $(CPPFLAGS) -c $< -o $@
  • 定义了一个规则模式,将.cpp文件编译为.o文件
$(BIN) : $(COBJS) $(CPPOBJS)$(CC) -o $(BIN)    $(COBJS) $(CPPOBJS) $(LDFLAGS) $(LIBS)rm -rf $(COBJS)rm -rf $(CPPOBJS)
  • 定义一个规则模式,用于链接目标文件生成可执行文件$(BIN)
  • $(BIN)依赖$(COBJS) $(CPPOBJS)
  • 链接完成后删除中间文件
.PHONY:clean cleanall
clean:rm  -rf $(BIN) $(COBJS) $(CPPOBJS)
cleanall:rm $(BIN) $(COBJS) $(CPPOBJS)
  • 定义两个伪目标(.PHONY),用于执行清理操作
http://www.hkea.cn/news/789103/

相关文章:

  • 网站建设 好域名注册信息
  • 公众号微网站建设认证哪个推广网站好
  • 爬取1024上传到wordpress蔡甸seo排名公司
  • 流感吃什么药更好seo的方法
  • 营销型网站建设市场seo黑帽技术有哪些
  • 扬中做网站的公司seo虚拟外链
  • 永川集团网站建设免费网站seo诊断
  • 国外 上海网站建设网络营销推广方式案例
  • 24手表网站网络技术推广服务
  • 鞍山网站制作推广游戏推广员判几年
  • 360如何做网站优化网页设计制作软件
  • 金华网站建设电话电商运营主要负责什么
  • 百度的官方网站游戏推广工作好做吗
  • 著名的深圳网站建设网页快照
  • 政务网站建设要求快速排名软件哪个好
  • 自己网站怎么做优化色盲和色弱的区别
  • 苏州建网站公司seo网络推广培训班
  • 福清市建设局网站石家庄学院
  • 找考卷做要去哪个网站中国国家培训网官网查询
  • 软件系统开发的大概步骤优化网站标题名词解释
  • 院校网站建设模板建站平台
  • 淘宝网站内搜索引擎优化怎么做广告推广平台网站有哪些
  • 大片播放网站国外免费推广网站有哪些
  • flash网站cms排名sem优化软件
  • 申请完域名怎么做网站百度链接提交
  • 驻马店市可以做网站的公司百度搜索竞价排名
  • 郑州市做网站吉林百度查关键词排名
  • 济宁网站建设seo抖音seo源码搭建
  • 茂名网站建设方案书简述seo和sem的区别
  • 江西网站做的好的企业文化百度指数在哪里看