Ubuntu下Linux系统调用

第一部分:Makefile

  • Makefile

Linux环境下,当用户编译文件过多的时候,使用makefile可以帮助模块化编译文件,makefile是一个脚本文件,根据规则,来执行相应的脚本文件,实现自动化编译。

  • Makefile规则

Makefile 的框架是由规则构成的。make 命令执行时先在 Makefile 文件中查找各种规则,对各种规则进行解析后运行规则。规则的基本格式为:

每条规则的语法格式:

target1,target2...: depend1, depend2, ...

command

......

......

每条规则由三个部分组成分别是目标(target), 依赖(depend) 和命令(command)。

命令(command):

当前这条规则的动作,一般情况下这个动作就是一个 shell 命令。

—例如:通过某个命令编译文件、生成库文件、进入目录等。

—动作可以是多个,每个命令前必须有一个Tab缩进并且独占占一行。

依赖(depend):

规则所必需的依赖条件,在规则的命令中可以使用这些依赖。

—例如:生成可执行文件的目标文件(*.o)可以作为依赖使用

—如果规则的命令中不需要任何依赖,那么规则的依赖可以为空

—当前规则中的依赖可以是其他规则中的某个目标,这样就形成了规则之间的嵌套

—依赖可以根据要执行的命令的实际需求,指定很多个

目标(target):

规则中的目标,这个目标和规则中的命令是对应的。

—通过执行规则中的命令,可以生成一个和目标同名的文件规则中可以有多个命令,因此可以通过这多条命令来生成多个目标,所有目标也可以有很多个

—通过执行规则中的命令,可以只执行一个动作,不生成任何文件,这样的目标被称为伪目标。

  • 实验步骤

1.Makefile基本使用方法

I.安装Makefile

   输入命令:sudo apt-get install make

Ubuntu下Linux系统调用_第1张图片

II.使用Makefile进行编译

由于之前已经编译了两个.c文件,所以可以直接在vim编辑器中创建新的makefile文件,输入命令:vim makefile

Ubuntu下Linux系统调用_第2张图片

输入以下命令: 

Ubuntu下Linux系统调用_第3张图片

第一行冒号前为目标,冒号后为前置条件;第二行必须由一个Tab键起首,后接命令;目标是必须的,不可省略;前置条件和命令是可选的,但两者必须至少存在一个。

输入make命令运行刚刚的makefile文件

Ubuntu下Linux系统调用_第4张图片

第二部分:

下载Linux源代码,尝试在Linux源程序中增加一个系统调用,

编译一次Linux内核,检查新增系统调用的效果

 可去往此链接:Ubuntu下Linux的系统调用_淡若琥珀的博客-CSDN博客

你可能感兴趣的:(Linux,linux,ubuntu)