文档详情

GNU-Make简介(补足六个汉字).ppt

发布:2018-12-27约2.22千字共17页下载文档
文本预览下载声明
GNU Make简介 培训目的 通过本课程学习,达到了解GNU Make工作原理,能独立编写简单Makefile进行程序编译的目的。 内容纲要 GNU Make概述 关于Makefile 编译开关 讨论 GNU Make概述 GNU Make是一个命令工具,通过在shell提示符下输入make命令调用。不过在执行make之前,需要一个命名为Makefile的特殊文件来告诉make需要做什么,该怎么做。通常,make工具被用来进行工程编译和程序链接。 内容纲要 GNU Make概述 关于Makefile 编译开关 讨论 关于Makefile 简介 示例 变量 隐藏规则 假象目的 函数 关于Makefile-简介 Makefile告诉make以何种方式编译源代码和链接程序。Makefile有自己的书写格式、关键字、函数。像C语言有自己的格式、关键字和函数一样。 一个简单的Makefile描述规则组成: 目标 : 依赖文件 [TAB]命令 关于Makefile-示例 HelloWorld: main.o common.o gcc -Wall -o HelloWorld main.o common.o main.o:main.c gcc -c -Wall -o main.o main.c common.o:common.c common.h gcc -c -Wall -o common.o common.c 关于Makefile-变量 OBJS = main.o common.o CC = gcc CFLAGS = -Wall HelloWorld: $(OBJS) $(CC) $(CFLAGS) -o HelloWorld $(OBJS) main.o:main.c $(CC) -c $(CFLAGS) -o main.o main.c common.o:common.c common.h $(CC) -c $(CFLAGS) -o common.o common.c 关于Makefile-隐藏规则 OBJS = main.o common.o CC = gcc CFLAGS = -Wall HelloWorld: $(OBJS) $(CC) $(CFLAGS) -o HelloWorld $(OBJS) 关于Makefile-假象目的 OBJS = main.o common.o CC = gcc CFLAGS = -Wall all: $(OBJS) $(CC) $(CFLAGS) -o HelloWorld $(OBJS) .PHONY : clean clean : -rm *.o *.exe 关于Makefile-函数 OBJS = $(patsubst %.c,%.o,$(wildcard *.c)) CC = gcc CFLAGS = -Wall HelloWorld: $(OBJS) $(CC) $(CFLAGS) -o HelloWorld $(OBJS) .PHONY : clean clean : -rm *.o *.exe 内容纲要 GNU Make概述 关于Makefile 编译开关 讨论 编译开关 -c 编译成目标文件,不链接 -o 目标文件名称 -I #include xxxx.h -D 宏定义 -W 编译警告控制,要求使用-Wall打开所有警告开关 内容纲要 GNU Make概述 关于Makefile 编译开关 讨论 讨论 练习: 1.要求编写一个Makefile用于将a.c、b.c、c.c编译生成一个autodsp程序。 2.假设a.c、b.c、c.c在d:\work\C-Train目录下,编写控制台命令进行程序编译。 3.假设a.c和b.c 包含了”c:\gcc”目录下的common.h,修改Makefile使编译能够成功。 4.在Makefile编译开关中加入MAXSiZE宏定义,并打开所有警告。 Thank you! * OBJS = main.o common.o CC = gcc CFLAGS = -Wall HelloWorld: $(OBJS) $(CC) $(CFLAGS) -o $@ $^ main.o:main.c $(CC) -c $(CFLAGS) -o $@ $ common.o:common.c common.h $(CC) -c $(CFLAGS) -o $@ $ 增加依赖关系: OBJS = main.o common.o CC = gcc CFLAGS = -Wa
显示全部
相似文档