码迷,mamicode.com
首页 > 系统相关 > 详细

Linux 我的第一个makefile(Linux指令学习笔记)

时间:2014-06-21 07:10:03      阅读:276      评论:0      收藏:0      [点我收藏+]

标签:style   class   blog   code   http   color   

我的第一个makefile

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

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

的第一个makefile的编写。

bubuko.com,布布扣

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 = 0,i = 1; while(i<=10) { sum += i; ++i; } return sum; }
//mul.c
int mul_two(void)
{
   return (2*5*8*10*14);
}
//total.c
#include"stdio.h"

int main(void)
{
  char ch ;
  scanf("%c",&ch);
  while(ch!=1&&ch!=2&&ch!=q&&ch!=Q)
  {
     printf("input error,please enter again!");
     scanf("%c",&ch);
  }
  switch(ch)
  {
     case 1:
          printf("The sum of from 1 to 10 is %d \n",sum_one());
          break;
     case 2:
          printf("The mul of 2 , 5, 8 ,10 ,14 is  %d \n",mul_two());
          break;
     default:
           
        return 0;
  }
  return 0;
}

make执行过程

bubuko.com,布布扣

哈哈,第一个makefile

Linux 我的第一个makefile(Linux指令学习笔记),布布扣,bubuko.com

Linux 我的第一个makefile(Linux指令学习笔记)

标签:style   class   blog   code   http   color   

原文地址:http://www.cnblogs.com/Forever-Kenlen-Ja/p/3795419.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!