Makefile编译指南:关键字解释和实践

需积分: 13 1 下载量 48 浏览量 更新于2024-09-13 收藏 58KB DOC 举报
"makefile学习笔记" makefile是 UNIX 系统中的一种自动编译工具,通过编写makefile文件可以自动地编译、链接和构建项目。下面是makefile学习笔记的知识点总结。 一、makefile基本概念 makefile是一个文本文件,用于描述如何编译和构建项目。makefile文件中包含了一系列的规则,每条规则都指定了如何编译和链接目标文件。makefile文件可以包含变量、依赖关系和命令等元素。 二、makefile关键字解释 1. CC_CMD:makefile中的CC_CMD变量用于指定编译器的命令,例如CC_CMD = -fpic -c。这里的-fpic选项告诉编译器生成位置独立代码(position-independent code),-c选项告诉编译器生成对象文件。 2. INCLUDES:INCLUDES变量用于指定头文件的路径,例如INCLUDES = -I../Include\ -Iinc。这里的-I选项告诉编译器查找头文件的路径。 3. CCFLAGS:CCFLAGS变量用于指定编译器的选项,例如CCFLAGS = $(CC_CMD) $(APP_DEF) $(APP_INC)。这里的-D选项用于定义宏,-I选项用于指定头文件的路径。 三、makefile实践 1. 编译共享库:使用gcc命令可以编译生成共享库,例如gcc -shared first.o second.o -o hello.so。这里的-shared选项告诉编译器生成共享库,-o选项指定输出文件的名称。 2. 使用dir命令:dir命令用于查看目录、文件权限等详细信息。例如,dir命令可以用来查看当前目录下所有文件的详细信息。 四、makefile变量 1. APP_INC:APP_INC变量用于指定头文件的路径,例如APP_INC = -I../Include\ -Iinc。 2. ARFLAGS:ARFLAGS变量用于指定归档器的选项,例如ARFLAGS = -r $(OUTDIR)/$(TARGET).$(EXETYPE)。这里的-r选项告诉归档器生成目标文件。 五、makefile的应用 makefile广泛应用于嵌入式系统、编译器开发、自动化构建等领域。通过编写makefile文件,可以自动地编译、链接和构建项目,提高开发效率和项目质量。 六、makefile的优点 1. 自动化构建:makefile可以自动地编译、链接和构建项目,提高开发效率。 2. 可重用性:makefile可以在不同的项目中重用,减少开发时间和成本。 3. 灵活性:makefile可以根据项目的需要进行灵活地配置和修改。 makefile是一个非常有用的自动编译工具,通过编写makefile文件,可以自动地编译、链接和构建项目,提高开发效率和项目质量。