初识makefile
来源:互联网 发布:python 驼峰转 编辑:程序博客网 时间:2024/06/05 22:45
一个工程的源文件不计其数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为makefile就像一个shell脚本一样,其中也可以执行操作系统的命令。
为工程编写makefile的好处是能够使用一行命令来完成自动化命令来完成“自动化编译”,一旦提供了正确的makefile,编译整个工程你所要做的唯一的一件事就是在shell提示符下输入make命令,整个工程完全自动编译,极大的提高了效率。
makefile(在其他系统上可能是另外的文件名)在绝大多数的IDE开发环境中都在使用。 (PS:IDE,integroted Development Enviroment,集成开发环境,是用于提供程序开发环境的应用程序,一般包括代码编译器、编译器、调试器和图形用户界面工具,集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件功能服务套。所有具备这一特性的软件或者软件套都可以叫集成开发环境,如:Vistual stdio系列)
2.基本的makefile规则:
目标(target即想要建立的文件):目标文件1目标文件2
<tab> gcc -o欲新建的可执行文件 目标文件1目标文件2
(1)在makefile中#仅代表注释
(2)<tab>需要在命令行的第一个字符处
(3)目标(target)与相关文件(目标文件)之间需要以“:”隔开
(4)makefile以文件名:文件名的形式比较冒号右边的文件是不是比左边的文件有更新,如果有更新则执行下一行的程序代码
3.实例
例:
编辑makefile来建立新的规则,此规则的目标称为clean:
makeclean:
清除上次的make命令所产生的object文件(后缀为“.o”的文件)及可执行文件。
#vi makefile
(注意执行命令前应该先使用<tab>)
#make clean
输出结果:
通过shell script的变量来简化makefile:
#vi makefile
$@可以代替main,代表目前的目标:
但是与bash shell script的语法有点不太相同,变量的基本语法为:
(1)变量与变量的内容以“=”隔开,同时两边可以具有空格;
(2)变量左边不可以有<tab>。例如上面范例第一行LIBS左边不可以有<tab>;
(3)变量与变量内容在“=”两边不能具有“:”;
(4)在习惯上,变量最好是以大写字母为主;
(5)运用变量时,以${变量}或者$(变量)使用;
(6)在该shell的环境变量是可以被套用的,例如提到的CFLASS这个变量;
(7)在命令行模式也可以定义变量。
关于环境变量:
既可以在make命令前定义出这个变量:
也可以像“IBLS”在脚本文件中添加。
但是如果同时使用这两种方法添加同一个环境变量,并且内容不同时,存在一个优先原则:
(1)make命令行后面加上的环境变量为第一优先;
(2)makefile里面指定的环境变量为第二优先;
(3)shell原本有的环境变量为第三优先。
- 初识makefile
- 初识makefile
- 初识Makefile
- 初识makefile
- 初识makefile
- 初识Makefile
- 初识makefile
- 初识 Makefile
- 初识Makefile
- 初识Makefile
- 初识Makefile
- Makefile初识
- 初识Makefile
- makefile初识
- Linux MakeFile初识
- 初识GDB和makefile
- 初识makefile的结构
- makefile学习经验(1)----初识Makefile
- ResultSet接口
- EffectiveJava学习笔记(1)
- SQL Server CONVERT() 函数
- 统计前面比自己小的数的个数
- TCP/IP详解卷1 读书笔记:第十七章 TCP 传输控制协议
- 初识makefile
- springmvc框架搭建(maven)
- Objective-c的基本特征:
- 工厂类
- C++primer_关联容器之map
- 信号量(Semaphore)
- Timer和TimeTask简介
- 用(循环)(和)(递归的)”折半法“查找数
- [Leetcode]Additive Number