前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Makefile中的Shell脚本简介

Makefile中的Shell脚本简介

原创
作者头像
雷大亨
发布2018-01-01 20:09:53
2.1K0
发布2018-01-01 20:09:53
举报
文章被收录于专栏:遊俠扎彪

给很多刚接触Makefile的人:

1、Makefile中可以嵌入shell脚本,而且能像shell脚本中一样,各种命令、控制结构都可使用。

2、Makefile的主要结构是

代码语言:txt
复制
...

target ... : prerequisites ... 

[TAB]command1

[TAB]command2

[TAB]...

...

只有在command位置的shell脚本才是有效的,也就是只有在“生成目标的规则处”写的shell脚本才是shell脚本,其它位置的shell都是无效的。当然也可以使用xx=$(shell pwd)这种特别的形式来简单使用shell。

3、Makefile中的shell,不同的行在不同的进程中执行,不同的行直接不能传递变量,所以很多时候shell都尽量使用反斜杠()来把相关的内容串成一行。比如:

代码语言:txt
复制
all:

    @CC=arm-linux-gcc

    @echo $(CC)

上面的echo是打不出来东西的。

代码语言:txt
复制
CC=arm-linux-gcc

all:

    @echo $(CC)

上面的echo是OK的,而且多半都是这么写。

4、Makefile变量和shell变量是两个不同的东西,并且为了避免Makefile变量和shell变量冲突,引用Makefile变量最好使用$(Makefile_Var),引用shell变量时最好使用$$Shell_Var。

5、Makefile的多字符变量只能使用$(VAR)或${VAR}来引用,不能使用$VAR,$VAR会被解释成$(V)AR. 但如果在纯粹的shell编程中,纯shell脚本里可以使用$VAR来引用VAR这个变量。

收藏于 2012-08-08

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档