Makefile里调用Shell注意点
http://www.linuxidc.com/Linux/2012-04/59093.htm
大家经常编写和使用Makefile, Makefile里面也经常用到shell, 但对其中一些需要注意的地方未必
会去留意, 这里列出几个来, 不知是否对大家有用。
1. 注意Makefile的变量和shell变量, 看如下示例:
DIRS = src bin lib
all:
@for i in $(DIRS); /
do /
echo " " $$i; /
done
大家看出来了吗? DIRS是makefile变量,i是shell变量, 使用的时候:
$(DIRS), $$i区别还是蛮大的。
2. 每一行的shell都是在独立的进程中运行的,如果你在上一行为一个变量赋值, 不要指望它在下一行有效, 比如:
@CROSS_COMPILE=mipsel-linux-
@echo $(CROSS_COMPILE)
打印的结果不会是mipsel-linux-,如果你想得到所要的结果, 就并为一条shell吧:
@CROSS_COMPILE=mipsel-linux- ; echo @echo $(CROSS_COMPILE)
或者:
@CROSS_COMPILE=mipsel-linux- ; /
echo @echo$(CROSS_COMPILE)
3. shell一定要写在target里, 否则你写了也白费劲, 是会被make忽略掉的.
@echo "Building all..."
all:
@echo "Begin"
只会打印Begin.
Makefile里调用Shell注意点的更多相关文章
- [转] Makefile中调用Shell
1.在Makefile中只能在target中调用Shell脚本,其他地方是不能输出的.比如如下代码就是没有任何输出: VAR="Hello" echo "$(VAR)&q ...
- Makefile调用shell应该注意的地方
转载:http://blog.csdn.net/ninlei0115/article/details/9732191 1.在Makefile中只能在target中调用Shell脚本,其他地方是不能输出 ...
- makefile中的shell语法
在Makefile中写shell代码有点诡异,和不同的shell语法不太一样,如果不了解,看Makefile会莫名其妙.下面总结了一些. 1:尽在Makefile文件的目标项冒号后的另起一行的代码才是 ...
- python 调用shell命令三种方法
#!/usr/bin/python是告诉操作系统执行这个脚本的时候,调用/usr/bin下的python解释器: #!/usr/bin/env python这种用法是为了防止操作系统用户没有将pyth ...
- ant调用shell命令(Ubuntu)
ant中调用Makefile,使用shell中的make命令 <?xml version="1.0" encoding="utf-8" ?> < ...
- Java 调用 shell 脚本详解
这一年的项目中,有大量的场景需要Java 进程调用 Linux的bash shell 脚本实现相关功能. 从之前的项目中拷贝的相关模块和网上的例子来看,有个别的“陷阱”造成调用shell 脚本在某些特 ...
- makefile中的shell编程注意点
参考:http://blog.csdn.net/wanglang3081/article/details/49423105 (1)Makefile本质上来讲也是shell脚本,即每条command都是 ...
- linux下怎样用c语言调用shell命令
C程序调用shell脚本共同拥有三种法子 :system().popen().exec系列数call_exec1.c , system() 不用你自己去产生进程.它已经封装了,直接增加自己的命令 ex ...
- Ant 调用 Shell/CMD 命令
Ant中调用Makefile,使用shell中的make命令 <?xml version="1.0" encoding="utf-8" ?> < ...
随机推荐
- GRUB启动管理器
Linux学习笔记之 5 Linux GRUB启动管理器 1.GRUB简介 1.1grub与启动引导器 启动引导器是计算机启动过程中运行的第一个真正的软件,通常计算机启动时在通过BIOS自检后 ...
- Median of Two Sorted Arrays 解答
Question There are two sorted arrays nums1 and nums2 of size m and n respectively. Find the median o ...
- Mod_python: The Long Story
mod_python: the long story - Grisha Trubetskoy Mod_python: The Long Story Oct 25th, 2013 | Comments ...
- svn之——linux下清除svn的用户名和密码
问题:之前用的svn账号权限不够,需要使用别的账号,所以提出需求——怎么使用新的svn账号进行操作 方法一: linux下删除~/.subversion/auth即可清除之前的用户名和密码:rm -r ...
- java一个简单的管理系统
用java实现的简单管理系统 运行出来的状态 实现了新增.删除.借出.归还.排行榜简单的功能! 下面是简单的代码 首先定义一个书籍类,自己打开哦! public class Book implemen ...
- 初次使用Oracle
这是我第一次写博客,主要是记录下自己这半个多月以来的学习笔记,以备以后可以随时查看. 首先就是安装Oracle的问题的,我系统是Win7 64位的,出现各种问题郁闷得不行,最终安装个Oracle102 ...
- SQL Server 添加一条数据获取自动增长列的几种方法
数据库表设计 邓老师(老邓教的) insert into TestOne ','Test011') select @@IDENTITY as '自动增长ID' 杨老师(老杨教的) insert ...
- C# Winform中执行post操作并获取返回的XML类型的数据
/// <summary> /// 返回指定日期的订单数据 /// </summary> /// <param name="StartDate"> ...
- jQuery.on() 函数详解
on() 函数用于为指定元素的一个或多个事件绑定事件处理函数. 此外,你还可以额外传递给事件处理函数一些所需的数据. 从jQuery 1.7开始,on()函数提供了绑定事件处理程序所需的所有功能,用于 ...
- HDU 5145 - NPY and girls
题意: cases T(1≤T≤10) (0<n,m≤30000) (0<ai≤30000) n个数ai 表示n个女孩所在教室 m次询问 [L,R](1 <= L <= ...