2020.03.24

1.source=-KaTeX parse error: Expected 'EOF', got '#' at position 19: …ldcard src/*.c)#̲列出当前目录下src目录地所在…(patsubset 模式参数,参数1,参数2,…)
result := ( p a t s u b s t 将 s o u r c e 变 量 里 . c 的 文 件 编 译 成 . o 文 件 3. m o d u l e s + = c h e c k p u t i n p a c k m e s s a g e m a i n 当 前 软 件 代 码 的 所 有 功 能 目 录 4. a d d s u f f i x 格 式 : (patsubst %.c, %.c, %.o, x.c y.c) 将source变量里.c的文件编译成.o文件 3.modules +=check_putin pack_message main当前软件代码的所有功能目录 4.addsuffix 格式: (patsubstsource.c.o3.modules+=checkputinpackmessagemain4.addsuffix(addsuffix 参数1,参数2)
功能:在参数2中的每个单词加上后缀参数1
返回值:加上后最的所有单词
例如:
result := ( a d d s u f f i x . c , x y ) r e s u l t 的 值 为 “ x . c y . c ” 5. (addsuffix .c,x y) result 的值为“x.c y.c” 5. (addsuffix.c,xy)resultx.cy.c5.(foreach 变量参数,参数1,表达式)
功能:循环取出参数1中的但粗赋给变量参数,然后运行表达式
返回值:表达式的运行结果
a:- x y z
result: - ( f o r c e a c h b , (forceach b, (forceachb,(a), ( b ) . c ) r e s u l t 的 值 为 “ x . c y . c z . c ” 注 意 , b 在 这 里 是 一 个 临 时 变 量 66. (b).c) result的值为“x.c y.c z.c” 注意,b在这里是一个临时变量6 6. (b).c)resultx.cy.cz.cb66.(make)-( ( 1 ) 进 入 (1)进入 (1)(1)所对应目录执行make命令
7.make 嵌套:cd 子目录 && $(make) 或(make) -c 子目录
例如:
首先在/home/b目录下新建一个子makefile.如下所示:
b.o:b.c
cc -c -o b.o b.c
然后修改/home目录中的总控Makefile,
8. 在这里插入图片描述9.echo 是打印
10.
嵌入式Linux开发工具:shell编译(脚本:批处理)Linux系统云给工程师(嵌入式系统开发–系统移植)
shell:1.命令解析器(将用户输入的命令解析,调用相应的命令的可执行文件)
2.脚本语言
3.shell既是一种命令语言,又是一种程序设计语言。作为命令语言,它互动式地解释和执行用户输入的命令。执行效率低
4.它定义了各种变量和参数,并提供了许多在高阶语言中才具有的控制结构,包括循环和分支。它虽然不是 Linux系统内核的一部分,但它调用了系统内核的大部分功能来执行程序、创建文档并以并行的方式协调各个程序的运行。
5.种类
Bourne shell(sh)
Korn shell(ksh)
Bourne Again shell(bash)
C shell(包括csh and tcsh)
TENEX/TOPS C shell(tcsh)
命令:可执行文件
在这里插入图片描述

     6.If [expression]
            then
       #code block
     else
     #code block
       fi

7.在这里插入图片描述
8.
在这里插入图片描述
9.
在这里插入图片描述
10.
在这里插入图片描述
11.
在这里插入图片描述
12.

通过“=”来实现

例如:

a1= $(a2)

a2= $(a3)

a3= a.o

这种方式下变量a1的值是a.o,也就是说前面的变量可以通过后面的变量来定义。但使用这种方式定义变量时,要防止出现死循环的情况。

(2)通过“:=”来实现

例如:

a1:= a.o

a2:= $(a1) b.o

这种方式下变量a1的值是a.o,变量a2的值是a.o b.o。

例如:

a1:= $(a2) b.o

a2:= a.o

这种方式下变量a1的值是b.o,而不是“a.o b.o”。也就是说前面的变量不能通过后面的变量来定义。

(3)通过“+=”来实现

例如:

a1= a.o

a1+= b.o

这种方式下变量a1的值是“a.o
b.o”。也就是说“+=”可以实现给变量追加值。等同于如下示例:

a1= a.o

a1:= $(a1) b.o

可以看到,Makefile的“+=”和C语言中的“+=”是非常相似的。

(4)通过“?=”来实现

例如:

a1:= a.o

a1?=b.o

这种方式下变量a1的值是a.o,而不是b.o。也就是说,如果变量a1已经在前面定义过了,那么后面的定义就无效了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值