第一部分:Makefile
Linux环境下,当用户编译文件过多的时候,使用makefile可以帮助模块化编译文件,makefile是一个脚本文件,根据规则,来执行相应的脚本文件,实现自动化编译。
Makefile 的框架是由规则构成的。make 命令执行时先在 Makefile 文件中查找各种规则,对各种规则进行解析后运行规则。规则的基本格式为:
每条规则的语法格式:
target1,target2...: depend1, depend2, ...
command
......
......
每条规则由三个部分组成分别是目标(target), 依赖(depend) 和命令(command)。
命令(command):
当前这条规则的动作,一般情况下这个动作就是一个 shell 命令。
—例如:通过某个命令编译文件、生成库文件、进入目录等。
—动作可以是多个,每个命令前必须有一个Tab缩进并且独占占一行。
依赖(depend):
规则所必需的依赖条件,在规则的命令中可以使用这些依赖。
—例如:生成可执行文件的目标文件(*.o)可以作为依赖使用
—如果规则的命令中不需要任何依赖,那么规则的依赖可以为空
—当前规则中的依赖可以是其他规则中的某个目标,这样就形成了规则之间的嵌套
—依赖可以根据要执行的命令的实际需求,指定很多个
目标(target):
规则中的目标,这个目标和规则中的命令是对应的。
—通过执行规则中的命令,可以生成一个和目标同名的文件规则中可以有多个命令,因此可以通过这多条命令来生成多个目标,所有目标也可以有很多个
—通过执行规则中的命令,可以只执行一个动作,不生成任何文件,这样的目标被称为伪目标。
1.Makefile基本使用方法
输入命令:sudo apt-get install make
由于之前已经编译了两个.c文件,所以可以直接在vim编辑器中创建新的makefile文件,输入命令:vim makefile
输入以下命令:
第一行冒号前为目标,冒号后为前置条件;第二行必须由一个Tab键起首,后接命令;目标是必须的,不可省略;前置条件和命令是可选的,但两者必须至少存在一个。
输入make命令运行刚刚的makefile文件
第二部分:
下载Linux源代码,尝试在Linux源程序中增加一个系统调用,
编译一次Linux内核,检查新增系统调用的效果
可去往此链接:Ubuntu下Linux的系统调用_淡若琥珀的博客-CSDN博客