Makefile 的试水
来源:互联网 发布:linux mysql安装 编辑:程序博客网 时间:2024/05/17 23:01
1.4.5.Makefile大侠隆重登场
1.4.5.1、为什么需要Makefile
Makefile是用来管理工程的。
在一个正式的软件项目中,由很多个.c和.h文件构成,此时如果直接在命令行编译,就会像这样:gcc a.c b.c c.c d.c e.c f.c g.c -o exe 每次编译都要输入一堆东西很麻烦,这个问题严重影响工作效率,怎么办?Makefile来解决
Makefile中的一些基本概念
目标:目标定格写,后面是冒号(冒号后面是依赖)
依赖:依赖是用来产生目标的原材料。
命令:命令前面一定是Tab,不能是定格,也不能说多个空格。命令就是要生成那个目标需要做的动作。
示例:
all:a.c b.c all: 是目标a.c b.c是依赖 gcc a.c b.c -o exe 是命令
gcc a.c b.c -o exe
注意windows系统写好的脚本 移植到 Linux系统中时编译器可能将 Tab键部分解释成4个或者8个空格,这时候会导致在Linux中编译脚本Makefile时会报错。
首先
a.c 文件中
#include<stdio.h>
extern int i ;
void main
{
printf("hello world i = %d\n", i );
}
b.c 文件中的内容
int i = 10;
makefile 文件中的内容
exe: a.c b.c (在a.c之前是存在一个空格的)
gcc a.c b.c - o exe
clean:
rm exe
或者是
makefile 文件中的内容
all: a.c b.c
gcc a.c b.c -o exe
执行步骤如下:
1 执行make 指令得到 exe文件
2 ./exe 执行程序得到输出结果 比如 hello world i =10
3 使用 vi b.c 修改b.c中的 i 的值为 1000
4 在执行make 指令得到一个新的exe文件(即步骤4中执行make指令后的exe将步骤1 的exe覆盖的),
5然后再运行./exe 得到hello world i =1000
所以俺个人暂时的理解就是makefile的作用就是将很多个文件家中的.c文件串起来来用.
0 0
- Makefile 的试水
- 【Makefile】: linux内核的makefile
- Makefile引用其它的Makefile
- Makefile.am和Makefile.in以及Makefile之间的关系
- Makefile.am, Makefile.in 与 Makefile的关系
- 关于Makefile,Makefile.in,Makefile.am的问题
- 关于Makefile,Makefile.in,Makefile.am的问题
- 关于Makefile,Makefile.in,Makefile.am的问题
- Makefile.am、Makefile.in和Makefile的关系
- configure, Makefile.am, Makefile.in,Makefile之间的关系
- Makefile.am, Makefile.in 与 Makefile的关系
- Makefile.am, Makefile.in 与 Makefile的关系
- 解析Makefile --- 简单的Makefile示例
- makefile和Makefile是等效的
- Crosstool 、 Makefile、u-boot的Makefile
- Crosstool 、 Makefile、u-boot的Makefile
- Makefile学习之Makefile的规则
- Makefile学习之另类风格的makefile
- 原生JavaScript与jQuery(绝对、相对定位)实现拖拽效果
- 集合框架
- 异常小结
- 考试 贪心+二分
- 给定一个模型文件,计算出这个模型的OBB包围盒的八个顶点 的 项目
- Makefile 的试水
- 公司内部服务器的一个小漏洞,让我越过VPN限制控制公司整个内网
- 面向对象继承一之经典继承
- Windows+Git+TortoiseGit+COPSSH 安装图文教程
- 建立一个带有头结点的单向链表,并将存储在数组中的字符依次转储到链表的各个结点中。
- Linux系统上如何同时部署两个gitbook服务
- 函数指针和指针函数
- Android中Serializable和Parcelable序列化对象详解
- HDU 2121 Ice_cream’s world II 不定根最小树形图