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


    我的第一个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 = 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 
    ",sum_one());
              break;
         case '2':
              printf("The mul of 2 , 5, 8 ,10 ,14 is  %d 
    ",mul_two());
              break;
         default:
               
            return 0;
      }
      return 0;
    }

    make执行过程

    哈哈,第一个makefile

  • 相关阅读:
    day38 04-Spring加载配置文件
    day38 03-Spring的IOC和DI的区别
    day38 02-Spring快速入门
    关于mysql-connector-net在C#中的用法
    SQL的四种连接用法整理
    SQL的四种连接用法整理
    SQL的四种连接用法整理
    45道CSS基础面试题
    45道CSS基础面试题
    45道CSS基础面试题
  • 原文地址:https://www.cnblogs.com/Forever-Kenlen-Ja/p/3795419.html
Copyright © 2020-2023  润新知