1. windows的IDE中自带Makefile,但是unix和linux需要自己写
2. makefile除了指定文件的编译顺序和规则以外,也可以执行操作系统的命令
3. make 是一个命令工具,是一个解释makefile中指令的工具,大部分IDE都有该工具,比如VC++中的nmake,linux下的GNU Make等等。
4. 各厂商的make不同,但都是在“文件依赖性”上做文章
5. 扩展:编译的四个步骤:
1. 预处理(.c文件-- .i文件):去注释;宏替换;头文件展开等 -E
2. 编译:(.i文件-- .s文件):c语言--汇编语言 -S (大写S)
3. 汇编:(.s文件-- .o文件):汇编---二进制bin -c(小写)
4. 连接:(.o文件-- exe文件):二进制---可执行文件 无选项
6. 扩展:将多个文件编译为exe的方式:
多个源文件的编译:(假设为func1.c和func2.c)有两种方法:
1. 直接编译多个源文件:gcc func1.c func2.c -o a.out
2. 分别gcc -c 生成.o,然后将各个.o链接成a.out:
a) Gcc -c func1.c func1.o
b) Gcc -c func2.c func2.o
c) Gcc func1.o func2.o -o a..out
一般情况下我们常见的是第二种,因为第一种相当于修改一个文件,所有的源文件都要编译,但
注意:虽然编译分为四步,但是实际使用时,一般是两步,即.c ---- ,o 和 ,o-----exe ,即常说的编译和链接。
=========================================
=========================================
shell 详解
=========================================
=========================================
1. shell的for循环格式如下:
for 变量名 in 取值列表;
do
<tab>actiont1;
<tab>actiont2;
....
done
其中的取值列表有几种格式:
1) for i in {1,2,3,4,7.15};
2) for ((i=0; i<10; i++)) ##即使用(()) 括起来以后,即可以使用C语言。
3)for i in `seq 10` #其中的seq是可以在终端输入的命令,seq10等效于 1,2,3,4,5,,10.
4)for i in `ls` ; for i in `find` 之类的都是可以的。
其中 4)举例子: 查找内核下所有名为 head.S的文件,病计算其MD5值的命令为:
for i in `find -name head.S`;do md5sum $i;done;
注意此命令可以直接在终端上输入的/
即for循环的循环变量不仅是数字性质的,还可以是字符串性质的。 注意各个表达式之间用分号隔开;最终的done后面一定要加分号. one more sample: 打印九九乘法表:
for i in `seq 9`;
do
for j in `seq 9`;
do
echo -n -e "$i*$j\t"
done
done
shell中的循环的循环变量,更多是非数字的情况,即字符的情况之类的。
==========================正则表达式=======================
1. 正则表达式 包含普通字符(a-z)以及特殊字符(元字符)
2. 正则的核心在于使用单个字符串来描述 匹配某个规则的一系列字符串,(即提取出一系列字符串的规律)
3. linux 的正则表达式详见百度网盘的“正则表达式--菜鸟教程”,但是总的来说就是一个匹配字符的工具,可以用在shell里面,建议仅掌握基础的正则表达式即可,此外整租还可以用于grep中
4. 正则表达式实际使用的时候,往往是很繁琐的,很不直观,但是熟悉后效率比较高
===================shell中的判断,循环语句略===============
rcS不同的厂家实现方式有差异,单都是循环遍历init.d目录下的Sxx开头的文件的内容。如下是不同的两家厂商的Sxx所包含的脚本:
S05NPU_init
S10udev
S15init
S20urandom
S25ambrwfs
S40network
S00devs
S01udev
S11init
S30ambrwfs
S80network
可见不同厂商的初始化虽然有所不同,但是有相同的几个.
其中的udev主要是为了实现USB热插拔而设计的一种驱动框架,详见USB总结
sxx_init 中的操作是相仿的,都是对 local/bin 和 lib/firmware 的操作
sxx_ambrwfs 中的操作主要是进行文件系统的挂载以及分区等操作
sxx_network主要是IP,mac的设置等
其中的ambrwfs
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)