`
kanwoerzi
  • 浏览: 1635614 次
文章分类
社区版块
存档分类
最新评论

教会你如何编写makefile文件

 
阅读更多
最近一直在学习makefile是如何编写的。
当我们写的程序文件比较少的时候,敲入gcc /g++,当你在大型工程中,在一个个编译文件的话,你可能就会很郁闷。linux有一个自带的make命令,它让你的工作省去了很大的力气,但是你要学习如何编写makefile文件。
makefile是一种特殊的文件格式,他将会帮你自动管理你的项目,很强大。
下面通过实例一步步讲解如何使用makefile。下面的四段代码。

请将以上文件放到一个目录下。

请注意: 我用的是g++进行编译的,你也可以按照你自己的选择来编译程序

make的作用

如果你运行: make命令, 它将会自动的在你的目录下寻找makefile文件,然后执行它,如果你几个makefile文件,你可以指定某一个特定的makefile文件 使用如下命令:

make -f mymakefile

如果你想知道更多的make 用法,可以执行man make 命令

执行过程

  1. 编译器将会编译你的源文件,然后输出目标文件
  2. 链接器执行目标文件然后创建一个可执行文件。
手动编译

最不理想的一种执行方式就是

g++ main.cpp hello.cpp factorial.cpp -o hello

akefile 基本规则

makefile的基本规则是有以下构成:

target: dependencies

[tab] system command

利用以上语法编写如下

all:

g++main.cpp hello.cpp factorial.cpp -o hello

然后运行你的makefile,如下

make -f Makefile-1

如上代码叙述,所写的目标是all,all是makefile默认的目标,如果没有其他规定,make语法将要执行这个目标文件。

我们还发现,all 目标并没有依赖的,所以按照命令让他安全的执行。

最后,make 通过 我们给的命令进行编译程序

使用依赖

这是因为,如果你修改一个单独的文件在你的项目,你不必重新编译一切,只有你修改。 请看下边的例子


我们看到目标all 只有依赖,没有系统命令。为了去执行正确,它必须满足所有的目标所依赖的。目标都回去搜索所有的依赖,然后去执行它。

在例子中,我们看到了clean的目标,clean 这个目标就是清楚中间生成的.o文件和那些可执行文件

使用变量和注释

当你写makefil文件的时候,当你想改变一些编译的一些选项的时候,他是非常有用处的。


你可以看到,使用这些有时候是非常有用的。你可以使用它们,赋值,当你想改变一些变量值的时候,然后你可以使用$(var),

来应用这些变量

如何继续下去

通过以上简要的介绍,你就可以简要的去编写一些更加复杂的makefile来运行你的复杂的程序了。上边讲的只是冰山一角

,你可以通过差一些make的文档来写。

通过以上简要的介绍,你就可以简要的去编写一些更加复杂的makefile来运行你的复杂的程序了。上边讲的只是冰山一角

,你可以通过差一些make的文档来写。

分享到:
评论

相关推荐

    教你如何编写Makefile

    这是Linux操作系统下程序的Makefile编写教程。

    《中文Makefile 教程》 电子版

    中文Makefile 教程,讲述如何编写makefile文件,文件结构,深入讲解。值得一读

    Makefile 基础教程

    1. 该文档手把手教你如何编写makefile文件;2.由浅入深,深入浅出;3. 包括编写规则和编译选项;4. 文档写得不错,跟大家一起分享。

    Android 安卓 jni开发 MakeFile文件分析和编写

    Android jni驱动开发用到的MakeFile文件,即Android.mk文件的分析和编写教程。

    跟我一起写 Makefile

    在用汇编语言编程时通常要写Makefile文件,这个教程就是教我们怎样编写Makefile文件的

    makefile教程

    makefile文件的编写教程,包含基本的makefile编写规则和实例.可以方便的学习编写makefile文件

    makefile详解介绍

    Linux/unix makefile 的详细介绍,教你如何编写Makefile文件

    How to write Makefile

    教你如何编写GNU makefile 文件

    跟我一起写_Makefile

    教你如何在linux系统下编写makefile文件,讲解通俗易懂。

    MakeFile文档

    这个文件将教你如何编写一个makefile在linux下编译.c 文件和.c++文件

    简单易懂的makefile教程.pdf

    本文档参照简单实例对Makefile文件的编写规范及规则进行了介绍和讲解,通过练习和分步讲解使读者能够针对性的对Makefile文件编写进行快速上手并掌握。

    C语言 makefile学习及实现实例

    C语言 makefile学习及实现实例 俗话说,不会写makefile的程序员不是好的程序员。 看了很多人写的makefile教程,感觉太难懂,还不如韦东山老师视频里讲的好理解。...1、Person表示要生成的目标文件。  mai

    GNUmake v_3.80 教程(简体中文)

    讲解makefile文件的编写

    7.19笔记(1) - 副本.txt

    Makefile的学习教程,很适合新手学习使用,通俗易懂,一篇足够让你看懂Makefile文件和自己编写

    Makfile创建教程

    详细介绍各种makefile编写历程,帮助初学者快的独立完成linux环境下makefile编译文件。

    嵌入式Linux应用程序开发标准教程(第2版全)

    3.7.3 编写包含多文件的makefile 3.7.4 使用autotools生成包含多文件的makefile 3.8 本章小结 3.9 思考与练习 第4章 嵌入式系统基础 4.1 嵌入式系统概述 4.1.1 嵌入式系统简介 4.1.2 嵌入式系统发展历史 4.1.3 ...

    TomCrypt.548527_someqpp_Vc_

    专为VC++开发的加密函数库,由Rinick编写了makefile文件,可以在bcc下编译成lib,内含使用教程和帮助文档。

    linux下用c实现MP3音乐播放代码

    本压缩包含music.c、file.c、file.h、link.c、link.h、makefile文件,每一个文件均为独立的功能,可以单独拿出来使用,完全原创的代码,注释清楚,配合博客教程使用效果更佳

    【教程】自定义 GPIO 应用程序(Ralink RT5350

    1.编写LED应用程序,并修改相关配置文件 1.1 新建led目录 1.2新建led.c 1.3 编写led.c 1.4 新建led目录下Makefile 1.5 修改led上层目录下的Makefile 1.6 将IO口的模式配置为GPIO模式 2. 添加内核支持,并编译...

Global site tag (gtag.js) - Google Analytics