我的第一个makefile

最近学到了makefile的文件的编写。makefile是一个能达到方便编译链接生成目标程序的文件,

make确实很方便,在写makefile的过程也能更好的理解gcc编译器执行生成可执行文件的全过程。这里是我

的第一个makefile的编写。

makefile根据依赖,逐步解析生成目标文件。

首先指定all:ef  生成最终目标文件ef

生成ef的前提是依赖ef:total.o sum.o mul.o 三个目标文件。

并且我们要指定gcc的执行 gcc -o ef total.o sum.o mul.o

由于生成ef需要三个*.o文件,所以我们要生成三个*.o文件。

生成total.o 需要文件total.c

生成sum.o 需要文件sum.c

生成mul.o  需要文件mul.c

所以我们指定生成依赖关系,然后指定gcc执行过程。

当执行make时,make会根据他们之间的依赖关系生成目标文件。

在第一编写makefile的过程中我遇到下面的两个问题,其实这也是新手常范的错误

1:在“:”后面不能用空格。

2:gcc 前面用空格代替了Tab,导致makefile执行失败。

下面是sum.c   mul.c   total.c 的代码内容

//sum.c
int sum_one(void)
{
int sum = ,i = ;
while(i<=)
{
sum += i;
++i;
}
return sum;
}
//mul.c
int mul_two(void)
{
return (****);
}
//total.c
#include"stdio.h" int main(void)
{
char ch ;
scanf("%c",&ch);
while(ch!=''&&ch!=''&&ch!='q'&&ch!='Q')
{
printf("input error,please enter again!");
scanf("%c",&ch);
}
switch(ch)
{
case '':
printf("The sum of from 1 to 10 is %d \n",sum_one());
break;
case '':
printf("The mul of 2 , 5, 8 ,10 ,14 is %d \n",mul_two());
break;
default: return ;
}
return ;
}

make执行过程

哈哈,第一个makefile

Linux 我的第一个makefile(Linux指令学习笔记)的更多相关文章

  1. Linux就该这么学--第五期 学习笔记

    第一节:基础 <Linux就该这么学>第二期视频 Linux就该这么学第5期第二节: ------------你的价值:你对公司做出的共享和你的不可替代性------------瑞尔系统R ...

  2. Linux man 用法小结(Linux指令学习笔记)

    今天买了一本<<Linux命令行与shell脚本编程大全>>,想利用暑假放假的时间系统的学习一下 Linux的shell脚本.今天看了一下书,才发现我之前学习,把Linux s ...

  3. Linux | Linux常用指令学习笔记

    @ 目录 前言 1. Linux目录结构: 2. 运行级别: init.systemctl 3. vim相关快捷键: 4. 开关机相关命令: shutdowm.halt.reboot.sync.log ...

  4. Linux mkisofs 创建光盘镜像文件(Linux指令学习笔记)

    mkisofs命令 创建光盘文件的系统的命令是mkisofs.光盘系统有多种格式,利用Linux系统提供的光盘文件系统创建 命令mkisofs,可以创建多种iso9660文件系统. 我们一般不用mki ...

  5. linux指令学习笔记(一)

    1. 查看目录下有什么文件/目录    > ls            //list列出目录的文件信息    > ls  -l 或ll   //list -list以“详细信息”查看目录文 ...

  6. 《Linux 性能优化实战—倪朋飞 》学习笔记 CPU 篇

    平均负载 指单位时间内,系统处于可运行状态和不可中断状态的平均进程数,即平均活跃进程数 可运行状态:正在使用CPU或者正在等待CPU 的进程,也就是我们常用 ps 命令看到的,处于 R 状态 (Run ...

  7. 20179203李鹏举 《Linux内核原理与分析》第一周学习笔记

    Linux基础入门 一.Linux的基础学习 1.1 Linux的重要基础操作 Linux不同于Windows的纯粹的图形化界面,虽然也有图形桌面的操作但是更多的操作还是通过命令行来进行,当然除了命令 ...

  8. 20179223《Linux内核原理与分析》第九周学习笔记

    视频学习 进程调度与进程调度的时机分析 不同类型的进程有不同的调度需求 第一种分类: --I/O-bound:1.频繁的进行I/O:2.通常会花费很多时间等待I/O操作的完成 --CPU-bound: ...

  9. 20179223《Linux内核原理与分析》第四周学习笔记

    补交第三周作业 完成一个简单的时间片轮转多道程序内核 1.使用实验楼的虚拟机打开shell,用cd LinuxKernel/linux-3.9.4进入linux-3.9.4. 2.执行命令qemu - ...

随机推荐

  1. centos6.4使用man查找命令时,报错No manual entry for xxxx

    前提:安装man的命令 yum -y install man 使用man报错 [root@localhost objs]# man fcntlNo manual entry for fcntl[roo ...

  2. 用HashSet的add方法谈hashcode和equals方法重写

    本文主要通过用HashSet的add方法讲一下hashCode和equals方法重写.错误的地方望指正. 1.了解HashSet的add方法 了解一个方法的好办法是看源码,所以先看源码 private ...

  3. Free download SKP900 update tool & activation tool

    One of the SKP900 key programmer user failed to get the SKP900 upgraded and add free tokens online u ...

  4. 【Android车载系统 News | Tech 2】News 谷歌开发新车载系统!安卓Auto不是终点 2014-12-20

    Google在今年推出了车载安卓系统Android Auto,旨在为汽车提供娱乐.导航等功能.不过,Android Auto并不是终点,现在有消息报道,Google正在开发一个能够彻底取代汽车底层控制 ...

  5. Android读取RAM,ROM,SD卡容量

    1)简介 一般人们在买手机的时候,在手机配置上都会出现"内存容量:512MB ROM+512MB RAM "等等类似这样的说明,可能很多人都知道RAM的意思就是运存的意思,但是对于 ...

  6. C#的三大特性

    每个新手基本上都知道C#的三大特性,但是今天我给自己总结了一下这三大特性 1.封装 被定义为"把一个或多个项目封闭在一个物理的或者逻辑的包中".在面向对象程序设计方法论中,封装是为 ...

  7. 关于在windows环境下配置xampp多站点问题

    前言 由于开发要求,最近开始了php开发,于是就找到了xampp,wamp等集成环境,关于在windows下的xampp和wamp的配置,我过两天在写两篇分别阐述一下,下面就遇到的多站点的配置问题讲一 ...

  8. 转:实体ToolTip显示XData

    首先要说明,实现方式不是我的原创,其中ToolTip的实现转自这里,然后XData的设置和获取来自Kean的博客,当然我自己也做了点研究,在这里,然后把这两个技术结合起来就是你将要看到的东西. 先上效 ...

  9. 关于async与await的FAQ 转

    (译)关于async与await的FAQ 传送门:异步编程系列目录…… 环境:VS2012(尽管System.Threading.Tasks在.net4.0就引入,在.net4.5中为其增加了更丰富的 ...

  10. Varnish缓存服务器的搭建配置手册

    Varnish缓存服务器的搭建配置手册 1.Varnish官方环境依赖提示 Installing Varnish Cache is as simple as enabling our package ...