分享

makefile的简单使用

 goodwangLib 2020-02-06

最近在 github上看了一些小的开源代码,发现不错就打包下载(download zip)。

在我打包下载的这些代码中,总会出现一个Makefile文件。之前经常接触Makefile,没有深究过,也没有用过。最近经常碰到Makefile,开源代码也需要用到Makefile,所以今天就对这个Makefile做一个总结和学习。

》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》

Makefile是一种描述文件,在一个项目中有很多源文件,相互之间依赖关系很复杂。makefile能简单明了的理顺各个源文件的关系,极大提高程序开发效率。

我们一般在Linux中经常看到项目用有Makefile,而在windows中很少看到,原因是因为windows上的IDE工具已经帮你自动生成了Makefile,编译工程的时候自动调用Makefile进行编译,所以在windows上我们经常是在不知情的情况下经常更Makefile打交道。

那么Makefile里的内容到底是些什么东西呢?

Makefile规定如何生成目标文件,所依赖的文件及生成的命令等。

makefile的基本语法规则如下:

目标文件 : 目标所依赖的文件
    command
注意:如果command不和目标文件所在一行时,在command前要加tab键

例子:

1.定义一个fun.h头文件

#ifndef _FUN_H
   #define _FUN_H
   
   extern int fun1(void)
   extern int fun2(void)
   extern int fun3(void)
   
   #endif

2.定义一个fun.c文件
#include<stdio.h>
   int fun1()
   {
           printf("This is first function!\n");
           return 0;
   }
   
   int fun2()
   {
          printf("This is second function!\n");
          return 0;
  }
  
  int fun3()
  {
          printf("This is third function!\n");
          return 0;
  }

3.定义一个mian.c文件
#include<stdio.h>
   #include<stdlib.h>
   int main()
   {
           fun1();
           fun2();
           fun3();
          return 0;
  }

为了编译上面这个项目,我们编译Makefile如下:
 edit : main.o fun.o
           cc -o edit main.o fun.o
   mian.o : main.c
           cc -c mainn.c
   fun.o : fun.c fun.h
           cc -c fun.c
   clean:
           rm fun.o main.o

保存Makefile,在Makefile目录下键入命了 make,编译器就会开始编译这个项目了。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多