第二十三课模块独立编译的支持(代码片段)

wanmeishenghuo wanmeishenghuo     2023-01-04     470

关键词:

技术分享图片

 

技术分享图片

 

技术分享图片

 

技术分享图片

 

技术分享图片

技术分享图片

 

技术分享图片

 

技术分享图片

 

 

 

 

 

 1 .PHONY : all compile link clean rebuild $(MODULES)
 2 
 3 DIR_PROJECT := $(realpath .)
 4 DIR_BUILD_SUB := $(addprefix $(DIR_BUILD)/, $(MODULES))
 5 MODULE_LIB := $(addsuffix .a, $(MODULES))
 6 MODULE_LIB := $(addprefix $(DIR_BUILD)/, $(MODULE_LIB))
 7 
 8 
 9 APP := $(addprefix $(DIR_BUILD)/, $(APP))
10 
11 define makemodule
12     cd $(1) && 13     $(MAKE) all 14             DEBUG:=$(DEBUG) 15             DIR_BUILD:=$(addprefix $(DIR_PROJECT)/, $(DIR_BUILD)) 16             DIR_COMMON_INC:=$(addprefix $(DIR_PROJECT)/, $(DIR_COMMON_INC)) 17             CMD_CFG:=$(addprefix $(DIR_PROJECT)/, $(CMD_CFG)) 18             MOD_CFG:=$(addprefix $(DIR_PROJECT)/, $(MOD_CFG)) 19             MOD_RULE:=$(addprefix $(DIR_PROJECT)/, $(MOD_RULE)) && 20     cd .. ; 
21 endef
22 
23 all : compile $(APP)
24     @echo "Success! Target ==> $(APP)"
25 
26 compile : $(DIR_BUILD) $(DIR_BUILD_SUB)
27     @echo "Begin to compile ..."
28     @set -e; 29     for dir in $(MODULES); 30     do 31         $(call makemodule, $$dir) 32     done
33     @echo "Compile Success!"
34     
35 link $(APP) : $(MODULE_LIB)
36     @echo "Begin to link ..."
37     $(CC) -o $(APP) -Xlinker "-(" $^ -Xlinker "-)" $(LFLAGS)
38     @echo "Link Success!"
39     
40 $(DIR_BUILD) $(DIR_BUILD_SUB) : 
41     $(MKDIR) [email protected]
42     
43 clean : 
44     @echo "Begin to clean ..."
45     $(RM) $(DIR_BUILD)
46     @echo "Clean Success!"
47     
48 rebuild : clean all
49 
50 $(MODULES) : $(DIR_BUILD) $(DIR_BUILD)/$(MAKECMDGOALS)
51     @echo "Begin to compile [email protected]"
52     @set -e; 53     $(call makemodule, [email protected])
54     

 

技术分享图片

 

golang✔️走进go语言✔️第二十三课udp&tcp(代码片段)

【Golang】✔️走进Go语言✔️第二十三课UDP&TCP概述UDP通信服务端客户端输出结果TCP服务端客户端输出结果概述Golang是一个跨平台的新生编程语言.今天小白就带大家一起携手走进Golang的世界.(第23课)UDP通信UDP(UserDatagramProtocal)是... 查看详情

第二十三课顺序表和单链表的对比分析(代码片段)

问题:如何判断某个数据元素是否存在于线性表中?查找一个元素是否在线性表中,每次查找就需要使用for循环,因此,我们需要封装一个find成员函数。在List.h中添加find函数:SeqList.h中添加find的实现:LinkList.h中添加find的实现... 查看详情

第二十三课

第二十三课第一单元语法部分Vておく<提前>:预先…… 口语形式:~とく  说明:      A、表示为后面要做的事情事先做好某种准备。    B、表示采取某种行为,并使其结果的状态持续下去。&nb... 查看详情

重学java基础第二十三课:java基础注释

    查看详情

学习python的第二十三天(re模块)(代码片段)

6.13自我总结1.re模块1.re.findall()1.基本用法re.findall(正则匹配的格式,匹配的对象)2.正则匹配常用格式1.^只匹配开头在多行模式中匹配每一行的开头类似字符串内置方法里面的startswithimportres='''aaaa,123213123,____,杨aaaaa''&#... 查看详情

批处理学习笔记第二十三课:用户变量和变量引用

用户变量   编写批处理程序时,用户根据需要自己定义的变量称之为用户变量。用户变量类似于C语言里面的变量,仅仅在定义该变量的程序中有效。   用户变量由set命令定义,这是批处理中非常非常重要... 查看详情

parisgabriel:python全栈工程师(0基础到精通)教程第二十三课(每周总结:2)

  ParisGabriel                                查看详情

团队冲刺第二十三天(代码片段)

今天主要是做了一下获取地方的相关的天气方面的东西。主要的运行截图如下:    主要的代码如下:packagecom.weather;importandroid.Manifest;importandroid.app.ProgressDialog;importandroid.content.Context;importandroid.content.Intent 查看详情

第二十三章程序集加载和反射

目录:23.1 程序集加载23.2 使用反射构建动态可扩展应用程序23.3 反射的性能23.4 设计支持加载项的应用程序23.5 使用反射发现类型的成员23.1 程序集加载JIT编译器将方法的IL代码编译成本机代码时,会查看IL... 查看详情

px4模块设计之二十三:自定义flighttask(代码片段)

PX4模块设计之二十三:自定义FlightTaskStep1创建飞行模式文件夹Step2创建飞行模式源代码和CMakeLists.txt文件Step3更新CMakeLists.txt文件Step4更新FlightTaskOrbit.hppStep5更新FlightTaskOrbit.cppStep6新增飞行模式到编译系统Step7确定使用该飞行模... 查看详情

第二十三章-命令模式(代码片段)

命令模式(Command):将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。烧烤程序#define_CRT_SECURE_NO_WARNINGS#include<iostream>#include<vector>#include<string&... 查看详情

第五十三课树中节点的查找操作(代码片段)

...存在树中,那么就将这个节点的指针返回,否则返回空。第二种查找方式中,按节点查找,如果找到就返回这个节点的地址,没有找到就返回空。 具体的查找方式不能像链表那样,因为树是非线性结构。树是递归定义的,与... 查看详情

python之第二十三天的努力--函数总结(代码片段)

01函数总结#仅限关键字参数#deffunc(a,b,*args,c):#print(a,b)#print(c)##func(1,2,3,4,c=666)#*#a,b=(1,2)#a,b,*c=(1,2,3,4,5,6)#print(a,b,c)#12[3,4,5,6]#a,*b,c=[11,22,33,44,55,66,77]#print(a,b,c)#11[22,33,44,55,66]77# 查看详情

第二十三次发博不知道用什么标题好(代码片段)

packageTest;importjava.awt.Color;importjava.awt.Container;importjavax.swing.*;publicclassChuangkouextendsJFramepublicvoidcreatJFrame(Stringtitle)JFramea=newJFrame(title);Containerc=a.getContentPane( 查看详情

第二十三节:scrapy爬虫识别验证码图片验证码识别(代码片段)

图片验证码基本上是有数字和字母或者数字或者字母组成的字符串,然后通过一些干扰线的绘制而形成图片验证码。例如:知网的注册就有图片验证码 首先我们需要获取验证码图片,通过开发者工具我们可以得到验证码url链... 查看详情

makefile(09)_扩展支持(代码片段)

23.独立模块的支持23.1.问题:一般而言,不同工程师负责不同模块的开发,编译环境中如何支持模块的独立编译?23.2.问题背景:大型项目的代码成千上万,完整编译的时间较长,编写模块代码时,可以通过编译检查语法错误;... 查看详情

c++从青铜到王者第二十三篇:c++异常(代码片段)

系列文章目录文章目录系列文章目录前言一、C语言传统的处理错误的方式二、C++异常概念三、异常的使用1.异常的抛出和捕获2.异常的重新抛出3.异常安全4.异常规范四、自定义异常体系五、C++标准库的异常体系六、... 查看详情

mysql基础第二十三天,更新和删除数据(代码片段)

更新数据updatecustmerssetcust_city=replace(cust_city,'市','city')wherecust_id>1000;updatecustomersetcust_adderess='新福路12号',cust_city='厦门市'wherecust_id=1;u 查看详情