您的位置:首页 > 其它

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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: