总控makefile
CC := gcc
CFLAGS := -Wall -O3
Libs = -lpthread
Target := client
Source := $(wildcard src/*.c) 列出当前目录下src目录的所有.c文件
Objs :=
(
p
a
t
s
u
b
s
t
(patsubst %.c,%.o,
(patsubst(Source)) 将source变量里的.c文件编译成.o文件
Modules += check_putin pack_message main 当前软件代码所有的功能目录
AllObjs :=
(
a
d
d
s
u
f
f
i
x
/
s
r
c
/
∗
.
o
,
(addsuffix /src/*.o,
(addsuffix/src/∗.o,(Modules)) 列出当前目录下的src的.o文件
scripts/makefile
@
(
f
o
r
e
a
c
h
n
,
(foreach n,
(foreachn,(Modules),
(
c
a
l
l
m
o
d
u
l
e
s
m
a
k
e
,
(call modules_make,
(callmodulesmake,(n))) 进入各个功能目录执行make命令
@
(
f
o
r
e
a
c
h
n
,
(foreach n,
(foreachn,(Modules),
(
c
a
l
l
m
o
d
u
l
e
s
c
l
e
a
n
,
(call modules_clean,
(callmodulesclean,(n))) 进入各个功能目录执行makeclean命令
通过修改总控以及scripts目录下的makefile,可以实现多种功能
在上一节课所用的计算器程序中建立tree,然后创建各个目录的src文件,并修改粘贴到目录下的makefile,可实现计算器功能。
cmake,一个跨平台的安装(编译)工具。
嵌入式linux开发工具
—shell编程(嵌入式系统开发,与系统移植相关)linux系统维护工程师需熟练,用于脚本编程,进行批处理。
shell的两种解释:
1命令解析器,将用户的命令解析,调用相应的命令的可执行文件
2脚本语言
shell既是一种命令语言,又是一种程序设计语言,它提供了许多在高阶语言中才具有的控制结构。
shell文件为了加以区分,一般会在文件后加.sh后缀,但是现在一般不加。运行程序时需要给程序修改权限。
shell中定义变量,变量赋值时,等号两边不能加空格,且bash中的语句结尾不需要分号。且在不同的解析器中语法不一样,需要加以注意。
定义函数 functionfunc1 {}
调用函数 func1
if语句 格式如下:
If [expression]
then
#code
block
else
#code block
fi
需要注意的是,[]两边都需要有空格,且=长边也要有空格。
for语句 格式如下:
for var in [list]
do
#code
block
done
当do和for被写在同一行,必须在do前面加上“;”如: for var in [list];do
while语句 格式如下:
while [condition]
do
#code
block
done
until语句 格式如下:
until
[condition]
do
#code
block
done
while和until的区别在于while为真时执行,until为假时执行;
case语句 格式如下:
case “$var” in
contidion1)
;;
contidion1)
;;
*)
default
statements;;
esac
功能:进行多项分支控制。