unzip Desktop.zip 解压
cp -r /mnt/文件夹/client . 将client文件复制到当前文件夹
企业级Makefile 编写
1.总控makefile:进入各个功能子目录执行make命令,并将所有.o文件生成可执行文件
2.功能目录makefile:将功能目录下的所有.c文件编译成.o文件
3脚本目录makefile:定义其它makefile文件所用到的变量
阅读makefile顺序 3 - 1 - 2
符号:
1、
(
w
i
l
d
c
a
r
d
模
式
参
数
)
查
询
e
g
:
r
e
s
u
l
t
:
=
(wildcard 模式参数) 查询 eg:result:=
(wildcard模式参数)查询eg:result:=(wildcard *.c)
result当前目录下所有.c文件
2、
(
p
a
t
s
u
b
s
t
模
式
参
数
,
参
数
1
,
参
数
2
)
e
g
:
r
e
s
u
l
t
:
=
(patsubst 模式参数,参数1,参数2) eg:result:=
(patsubst模式参数,参数1,参数2)eg:result:=(patsubst %.c,%.o,x.c, y.c)
result:=x.o, y.o
3、:= (防止出现死循环)
a1:=a.o
a2:=
(
a
1
)
b
.
o
a
1
=
a
.
o
a
2
=
a
.
o
b
.
o
a
1
:
=
(a1)b.o a1=a.o a2 = a.o b.o a1:=
(a1)b.oa1=a.oa2=a.ob.oa1:=(a2) b.o
a2:=a.o
a1=b.o a2=a.o
4、 +=(添加变量值)
a1 = a.o
a1 +=b.o
a1= a.o b.o
a1=a.o
a1:=$(a1)b.o
a1=a.o b.o
5、
(
a
d
d
s
u
f
f
i
x
参
数
1
,
参
数
2
)
r
e
s
u
l
t
:
=
(addsuffix 参数1,参数2) result:=
(addsuffix参数1,参数2)result:=(addsuffix .c,x y)
result = x.c y.c
6、foreach
(
f
o
r
e
a
c
h
变
量
参
数
,
参
数
1
,
表
达
式
)
功
能
:
循
环
取
出
参
数
1
中
的
单
词
赋
值
给
变
量
参
数
,
然
后
运
行
表
达
式
。
返
回
值
:
表
达
运
行
结
果
a
:
=
x
y
z
r
e
s
u
l
t
:
=
(foreach 变量参数,参数1,表达式) 功能: 循环取出参数1中的单词赋值给变量参数,然后运行表达式。 返回值:表达运行结果 a:=x y z result:=
(foreach变量参数,参数1,表达式)功能:循环取出参数1中的单词赋值给变量参数,然后运行表达式。返回值:表达运行结果a:=xyzresult:=(foreach b,$(a), $(b).c)
result = x.c y.c z.c
7、
(
c
a
l
l
变
量
参
数
,
参
数
.
.
.
.
.
.
.
)
功
能
:
循
环
把
参
数
依
次
赋
值
给
变
量
参
数
中
的
(call 变量参数, 参数.......) 功能:循环把参数依次赋值给变量参数中的
(call变量参数,参数.......)功能:循环把参数依次赋值给变量参数中的(1)、
(
2
)
.
.
.
.
.
.
返
回
值
:
赋
值
后
的
变
量
值
a
:
=
(2)...... 返回值:赋值后的变量值 a:=
(2)......返回值:赋值后的变量值a:=(2)
(
1
)
r
e
s
u
l
t
:
=
(1) result :=
(1)result:=(call $(a),x y)
result = yx