什么是Makefile?
makefile的好处
会不会写makefile,决定了一个人是否具备完成大型工程的能力。
由于Windows的很多编译环境在执行编译时操作过于“傻瓜”,所以很多程序员在做Unix开发的时候会很不适应,因为横在他们面前的,是一座叫做“makefile”的大山。然而,成为专业的程序员,你必须要跨过这座大山。
makefile最大的好处就是在于可以主动编译,一个工程里面可能会有成百上千个文件,哪个文件先编译,哪个文件后编译,哪个文件需要编译很多遍,这些东西都要写在makefile里面。
makefile厉害的地方在于,该文件一旦写好,仅仅须要一个make命令,整个工程全然自己主动编译,极大的提高了软件开发的效率。make是一个命令工具,是一个解释makefile中指令的命令工具,一般来说,大多数的IDE都有这个命令,比方:Delphi的make,Visual C++的nmake,Linux下GNU的make。可见,makefile都成为了一种在工程方面的编译方法。
编译和链接:
无论是C,C++,如果想要运行的话,就要首先生成中间代码,在windows中一般是.obj文件,在Unix中一般是.o文件,这个过程就是编译。一个工程文件
关于文件名称:
默认的情况下,make命令会在当前文件夹下按顺序找寻文件名称为“GNUmakefile”、“makefile”、“Makefile”的文件,找到了解释这个文件。在这三个文件名称中,最好使用“Makefile”这个文件名称,由于,这个文件名称第一个字符为大写,这样有一种显目的感觉。最好不要用“GNUmakefile”,这个文件是GNU的make识别的。有另外一些make仅仅对全小写的“makefile”文件名称敏感,可是基本上来说,大多数的make都支持“makefile”和“Makefile”这两种默认文件名称。
什么是Makefile?相关推荐
- 浅显易懂 Makefile 入门 (12)— Makefile 常见的错误信息
1. 常见的错误信息 make 执行过程中所产生错误并不都是致命的,特别是在命令行之前存在 -.或者 make 使用 -k 选项执行时. make 执行过程的致命错误都带有前缀字符串 ***.错误信息 ...
- 浅显易懂 Makefile 入门 (10)— 嵌套执行 make、export 的使用
1. 嵌套执行 make 在一个大的工程文件中,不同的文件按照功能被划分到不同的模块中,每个模块可能都会有自己的编译顺序和规则,如果在一个 Makefile 文件中描述所有模块的编译规则,就会很乱,执 ...
- 浅显易懂 Makefile 入门 (09)— include 文件包含、MAKECMDGOALS
1. include文件包含 当 make 读取到 include 关键字的时候,会暂停读取当前的 Makefile,而是去读 include 包含的文件,读取结束后再继读取当前的 Makefile ...
- 浅显易懂 Makefile 入门 (08)— 默认 shell (/bin/sh)、命令回显、make参数(-n 只显示命令但不执行,-s 禁止所有回显)、单行命令、多行命令、并发执行
1. shell 相关 1.1 默认 shell Makefile 所使用的命令是由 shell 命令行组成,他们是一条一条执行的. 多个命令之间要使用分号隔开,Makefile 中的任何命令都要以 ...
- 浅显易懂 Makefile 入门 (07)— 其它函数(foreach 、if、call、origin )
1. foreach 函数 foreach 函数定义如下: $(foreach <var>,<list>,<text>) 函数的功能是:把参数 <list&g ...
- 浅显易懂 Makefile 入门 (06)— 文件名操作函数(dir、notdir、suffix、basename、addsuffix、addperfix、join、wildcard)
编写 Makefile 的时候,很多情况下需要对文件名进行操作.例如获取文件的路径,去除文件的路径,取出文件前缀或后缀等等. 注意:下面的每个函数的参数字符串都会被当作或是一个系列的文件名来看待. 1 ...
- 浅显易懂 Makefile 入门 (03)— 目标文件搜索(VPATH 和 vpath 的区别和使用)、隐含规则
1. 目标文件搜索(VPATH和vpath) 如果需要的文件是存在于不同的路径下(即源文件与 Makefile 文件不在同一个路径下),在编译的时候就用到了 Makefile 中为我们提供的目录搜索文 ...
- 浅显易懂 Makefile 入门 (02)— 普通变量和自动变量定义、使用($@、$^、$< 作用)、变量覆盖 override、变量的来源 origin
1. 变量的定义 Makefile 文件中定义变量的基本语法如下: 变量的名称=值列表 变量的名称可以由大小写字母.阿拉伯数字和下划线构成.等号左右的空白符没有明确的要求,因为在执行 make 的时候 ...
- 浅显易懂 Makefile 入门 (01)— 什么是Makefile、为什么要用Makefile、Makefile规则、Makefile流程如何实现增量编译
1. 什么是 Makefile Makefile 文件描述了 Linux 系统下 C/C++ 工程的编译规则,它用来自动化编译 C/C++ 项目.一旦写编写好 Makefile 文件,只需要一个 ma ...
- Android 的NDK的Makefile编写
Android.mk 是google根据Linux GNU Makefile精简编译脚本.具体来说:这就是GNU Makefile的一小部分. 举一个简单例子: LOCAL_PATH := $(cal ...
最新文章
- 在GetSSL上申请和使用免费的SSL证书
- 关于WinCE中config.bib的问题
- 借助 OpenGL* ES 2.0 实现动态分辨率渲染
- 关于Union,Struct and Class的大小计算问题
- shp格式详解(一)
- 微信小程序毕业设计 基于微信景区景点旅游攻略小程序系统开题报告
- 【目标检测】目标检测算法-从OverFeat到YOLO
- 利用stm32串口中断进行数码管显示
- 在 360 度绩效评估中应该问的 20 个问题
- 怎么用c语言让电脑定时开关机,电脑定时开关机,教您怎么设置电脑定时开关机...
- 【Java】简单的马戏团节目单项目
- 什么相片可以两张弄成一张_ps怎么把两张图片合成一张
- js array 添加对象_不可不知的 Vue.js 列表渲染
- Javascript如何阻止事件的默认行为?
- 将来安徽各大楼宇和小区将是这样的......
- 短视频平台开发,首先要搭建短视频框架
- (7-3)重要的话说三遍 (5分) 你只需要把这句很重要的话 —— “I'm gonna WIN!”——连续输出三遍就可以了。 注意每遍占一行,除了每行的回车不能有任何多余符
- 客似云来———斐波那契数列
- Raccoon——(Web)PHP 后门分析writeup
- 大脸猫:网站优化之发现一直有人抄写自己的原创文章,该怎么办?