我的第一个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. AlloyTouch实现下拉刷新

    原文地址:https://github.com/AlloyTeam/AlloyTouch/wiki/Pull-to-refresh 效果展示 扫码体验 你也可以点击这里访问Demo 可以点击这里查看代 ...

  2. BootStrap2学习日记14----导航

    <div class="navbar navbar-inverse navbar-fixed-top"> <div class="navbar-inne ...

  3. SOA与C#

    What is SOA? SOA or Service oriented architecture is an architecture style for building business app ...

  4. [JavaEE] applicationContext.xml配置文件使用合集

    配置实例 – 1 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http ...

  5. Bash中的位置参数和特殊参数

    #Bash中的位置参数和特殊参数 #Bash中的位置参数是由0以外的一个或多个数字表示的参数.#位置参数是当Shell或Shell函数被引用时由Shell或Shell函数的参数赋值,并且可以使用Bas ...

  6. [转]在PHP语言中使用JSON

    本文转自:http://www.ruanyifeng.com/blog/2011/01/json_in_php.html 作者: 阮一峰 日期: 2011年1月14日 目前,JSON已经成为最流行的数 ...

  7. HTTPS的工作原理

    参考自<图解HTTP> 果壳网http://www.guokr.com/post/114121/ HTTPS的工作原理 增加了一层:HTTPS流程:应用层 HTTP->SSL/TLS ...

  8. [转]如何下载tizen源码(图文教程)?

    http://blog.csdn.net/flydream0/article/details/8996654 当前tizen发布的最新源码版本是2.1,本文将以图文教程讲述如何下载tizen源码,关于 ...

  9. 转:关于视频H264编解码的应用实现

    转:http://blog.csdn.net/scalerzhangjie/article/details/8273410 项目要用到视频编解码,最近半个月都在搞,说实话真是走了很多弯路,浪费了很多时 ...

  10. Oracle存储过程的调用(返回参数)

    CREATE OR REPLACE PROCEDURE test_in_out_exception (v_empno VARCHAR2,v_guess_sal NUMBER,v_true_sal OU ...