您的位置:首页 > 运维架构 > Linux

linux中的ctags与make命令

2016-05-28 15:07 676 查看
ctags命令

ctags是vim下方便代码阅读的工具。

首先呢,先创建ctag.h,ctag.c,test.c三个文件。
ctag.h 中为函数的声明。
test.c中为函数的定义。
ctag.c为主函数。




使用ctrl + R这条命令会在当前目录下产生一个“tags”文件,当用户在当前目录中运行vi时,会自动载入此tags文件。
将光标放在函数处时,使用 ctrl + ] 时,跳到函数的定义处。使用 ctrl + t时,跳到函数的声明处。
2.make命令
make 是命令,而Makefile是一个文件,在make命令执行时,需要一个Makefile文件,以告诉make命令需要怎样去编译和链接程序。
Makefile---自动化编译,一旦写好,只需一个make命令,整个工程完全自动编译,极大的提高的软件开发的效率。

在介绍make之前呢,我们先来理解一下‘\n’。
我们都知道‘\n’是回车换行。
回车是光标重新回到本行开头(可能会覆盖之前的内容),换行是光标往下一行(不一定到下一行行首)。
首先呢,先来看这样一个例子:

printf语句中'\n',在执行时,屏幕上会直接输出hello bit,然后等待两秒。结果如右图所示。






若将printf语句中的'\n'去掉,屏幕上会先等待两秒,然后输出hello bit。结果如下图所示。





注:在执行语句的过程中,若遇到'\n'时,会刷新缓冲区。所以在printf语句中存在'\n'时,执行此语句时,遇到'\n',所以会直接在屏幕上输出结果。

上述已经说过,make在执行的时候,需要一个Makefile文件。
Makefile文件中主要是文件的依赖关系和依赖方式。
在定义好依赖关系后,后续的那一行定义了如何生成目标文件的操作系统命令,一定要以Tab键开头。make并不管命令是怎么工作的,他只管执行所定义的命令。

make是如何工作的?
(1) make会在当前目录下找名字叫“Makefile”或“makefile”。
(2) 如果找到,它会找文件中的第一个目标文件.o。
(3) 如果文件不存在,它会根据依赖关系找.s文件。
(4) 若.s文件不存在,make会在当前文件中找目标为.s文件的依赖性即.i。
(5) 若.i文件不存在,根据依赖关系会找.c文件,当然.c文件时存在的啦。于是,make会生成一个.o文件,然后去执行文件。

这就是整个make的依赖性,make会一层一层去找文件的依赖关系,直到最终编译出第一个目标文件。在找的过程中,如果出错,如:最后被依赖的文件找不到,make会直接退出,并报错,对于定义的命令的错误或者编译不成功,make不管。make只管文件的依赖性,即如果找到依赖关系之后,冒号后边的文件不存在,make也不工作。

清理目标文件的规则:
每一个Makefile中都应该写一个清理目标文件(.o和执行文件)的规则,这不仅便于重编译,也有利于保持文件的清洁。
.PHONY:clean
clean:
rm -f 文件
.PHONY后边的clean事宜“伪目标”。在rm命令前面加上一个小减号的意思是,就算某些文件处理问题,不要管,继续做后边的事情。不要将clean的规则放到文件的开头,不然出成为make的默认目标。
clean从来都放在文件的最后
proc.c文件


注:fflush(stdout):清空输出缓冲区,并把缓冲区内容输出
Makefile文件



结果:


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  命令 make ctags