美文网首页
关于Makefile的使用

关于Makefile的使用

作者: 西寻 | 来源:发表于2015-11-23 00:00 被阅读233次

本周主要学习在Linux系统下使用Makefile对多个C语言源程序进行编译。

对于多个C语言源程序编译的时候,可以进行合并编译,例如下:

$ gcc main.c stack.c maze.c -o main

但是这种办法并不是很好,由于一般大型软件大多由上千个源程序组成,所以当其中的一个出错,还需把所有源文件重新编译一遍,而全部编译一遍需要几个小时,所以这种方法并不是首选,除非源程序数量极少。

还有一种方法如下:

$ gcc -c main.c

$ gcc -c stack.c

$ gcc -c maze.c

$ gcc main.o stack.o maze.o -o main

如果编译之后又对maze.c做了修改,要重新编译只需要做两步:

$ gcc -c maze.c

$ gcc main.o stack.o maze.o -o main

然而这样也与上一种方法有着类似的弊端,比如说寻找错误困难,重新编译耗时长。

所以使用Makefile对C语言进行编译不失为一种首选方法。

make 程序利用Makefile的数据和每个文件最新一次更改的时间来确定哪些文件需要更新;对每个需要更新的文件,make程序使用Makefile中定义的命令来更新它。

Makefile一般格式:

target(要生成的文件): dependencies(被依赖的文件)

#命令前面用的是“tab”而非空格。误用空格是初学者容易犯的错误!

命令1

命令2

命令3

.

.

.

命令n

目标和条件之间的关系是:欲更新目标,必须首先更新它的所有条件;所有条件中只要有一个条件被更新了,目标也必须随之被更新。所谓“更新”就是执行一遍规则中的命令列表,命令列表中的每条命令必须以一个Tab开头,注意不能是空格,Makefile的格式不像C语言的缩进那么随意,对于Makefile中的每个以Tab开头的命令,make会创建一个Shell进程去执行它。

所以将源程序和头文件放在同一目录下,在该目录下运行make命令即可进行编译。

相关文章

  • 关于Makefile的使用

    本周主要学习在Linux系统下使用Makefile对多个C语言源程序进行编译。 对于多个C语言源程序编译的时候,可...

  • Linux Kernel Makefiles特殊符号

    Makefile基本规则: Makefile文件中可使用特殊的符号简化Makefile文件的书写。 1、$@:表示...

  • Makefile 学习

    Makefile 一、Makefile 简单使用 Makefile是Linux系统下的一种编译脚本,更快、更方便的...

  • Makefile的基本使用

    Makefile的基本使用 首先需要有一个Makefile文件然后执行make即可完成所有的Makefile中定义...

  • Makefile

    在使用Makefile 编译多个c文件时,出现 Makefile:2:*** missing separator....

  • Makefile简笔记

    一、Makefile 变量 #Makefile变量的使用 objects = main.o input.o cal...

  • Makefile的使用

    Makefile android的Android.mk就是一段段Makefile单元,很多第三方库直接提供make...

  • Makefile使用

    Makefile 简介 一个工程中的源文件不计其数,按其类型、功能、模块分别放在若干个目录中。makefile定义...

  • 关于MakeFile

    #1、wildcard : 扩展通配符 #2、notdir : 去除路径 #3、patsubst :替换通配符 $...

  • 关于Makefile

    本文参考:Make 命令教程 - 阮一峰 本学期正在上一门具有“USC神课”之美誉的CSCI402 - Opera...

网友评论

      本文标题:关于Makefile的使用

      本文链接:https://www.haomeiwen.com/subject/yokrhttx.html