Makefile 初学
2016-01-11 16:22
295 查看
//定义三个文件如下
fun.h:
void fun_printf();
fun.c:
#include <stdio.h>
#include "fun.h"
void fun_printf()
{
printf("fun_printf\n");
}
main.c:
#include <stdio.h>
#include "fun.h"
int main()
{
fun_printf();
return 0;
}
###############################################################
# Makefile 1
###############################################################
# exefile:最终生成的可执行文件
exefile:main.o fun.o #如果main.o fun.o(依赖文件)有更新,则执行下面的shell命令
gcc -o exefile main.o fun.o #执行的shell命令,.o 文件生成可执行文件 exefile
# main.o:中间目标文件
main.o:main.c fun.h #如果main.c fun.h (依赖文件)有更新,则执行下面的shell命令
gcc -c main.c #执行的shell命令,.c文件生成中间目标文件.o
# 同上
fun.o:fun.c fun.h
gcc -c fun.c
# clean:标签
clean:
rm main.o fun.o exefile # 标签所代表的shell命令
###############################################################
# Makefile
###############################################################
.PHONY:clean all #伪命令 clear 和 all,是目标
CC=gcc
CFLAGS=-Wall -g
BIN=hello
all:$(BIN) #all(目标):$(BIN)(依赖)
#(此行是规则,没写,是让linux自动推导。生成文件名为hello的可执行文件)
%.o:%.c #%.o(当这个目标中的任何一个):%.c(依赖发生更新)
$(CC) $(CFLAGS) -c $< -o $@#(那么将执行此规则。将.c生成为.o)
clean:
rm -f *.o $(BIN)
fun.h:
void fun_printf();
fun.c:
#include <stdio.h>
#include "fun.h"
void fun_printf()
{
printf("fun_printf\n");
}
main.c:
#include <stdio.h>
#include "fun.h"
int main()
{
fun_printf();
return 0;
}
###############################################################
# Makefile 1
###############################################################
# exefile:最终生成的可执行文件
exefile:main.o fun.o #如果main.o fun.o(依赖文件)有更新,则执行下面的shell命令
gcc -o exefile main.o fun.o #执行的shell命令,.o 文件生成可执行文件 exefile
# main.o:中间目标文件
main.o:main.c fun.h #如果main.c fun.h (依赖文件)有更新,则执行下面的shell命令
gcc -c main.c #执行的shell命令,.c文件生成中间目标文件.o
# 同上
fun.o:fun.c fun.h
gcc -c fun.c
# clean:标签
clean:
rm main.o fun.o exefile # 标签所代表的shell命令
###############################################################
# Makefile
###############################################################
.PHONY:clean all #伪命令 clear 和 all,是目标
CC=gcc
CFLAGS=-Wall -g
BIN=hello
all:$(BIN) #all(目标):$(BIN)(依赖)
#(此行是规则,没写,是让linux自动推导。生成文件名为hello的可执行文件)
%.o:%.c #%.o(当这个目标中的任何一个):%.c(依赖发生更新)
$(CC) $(CFLAGS) -c $< -o $@#(那么将执行此规则。将.c生成为.o)
clean:
rm -f *.o $(BIN)
相关文章推荐
- java 正则(3) matches() / find() / lookingAt / start end / replaceAll / appendReplacement / group(int)
- 防止租用服务器数据丢失的方法
- [Python]网络爬虫(三):异常的处理和HTTP状态码的分类
- python小点心--globals函数
- 第1章第2节练习题8 奇偶拆分单链表
- Yocto开发笔记之《驱动调试-GPS数据采集》(QQ交流群:519230208)
- android:inputType参数类型说明
- Unity 3D 离线协议
- asp.net生成N组指定位数随机数都一样的解决办法
- 查询mysql事务隔离级别
- xml,json,http,socket的区别
- java代码动态设置控件的颜色
- IOS动画相关
- 【加密算法】3DES加密算法
- IntelliJ IDEA 15激活
- Hadoop 重新格式化namenode
- Net中的常见的关键字
- 数组排序
- hdu 2097 Sky数 寒假集训1 06
- 85、交换机安全MAC层攻击配置实验之Port-Security