使用Makefile构建C程序:目标依赖与预定义变量

需积分: 15 41 下载量 181 浏览量 更新于2024-08-05 收藏 24.46MB PDF 举报
本文主要介绍了如何在Makefile中增加目标和依赖,以及编译C语言程序时使用的一些关键概念和预定义变量。在Makefile中,通过指定目标和依赖,可以确保当依赖文件发生改变时,相应的目标文件会自动重新编译。文章提到了一个例子,其中`EXE: $(OBJ)`表示可执行文件依赖于目标文件,而`$^`自动变量则代表所有依赖的目标文件。 在Makefile中,使用预定义变量可以简化代码并提高可读性。例如,`CC`是C语言编译器的默认变量,`AR`是归档维护程序,`AS`是汇编程序,`RM`是用于删除文件的程序。此外,还有`ARFLAGS`、`ASFLAGS`、`CFLAGS`、`CPPFLAGS`和`LDFLAGS`等变量,它们分别用于传递不同阶段的编译标志。在实际应用中,可以通过修改这些变量来添加或修改编译选项,如增加`-g`选项以包含调试信息,或者链接特定库文件。 在描述中提到了对前一个Makefile的修改,增加了`-g`编译选项,并链接了当前目录下的动态库`libFOO.so`。这种修改可以增强程序的调试能力,并且展示了如何利用预定义变量简化Makefile的编写。 文章的标签为“嵌入式Linux 周立功”,可能意味着这是针对嵌入式系统开发的Linux知识,与周立功单片机科技有限公司(ZLGMCU)相关。ZLGMCU是一家专注于嵌入式系统和单片机技术的公司,提供的资源可能涵盖从基础知识到具体实践的多个方面。 文章的部分内容提到了Linux的基础知识,包括Linux内核的简介、特点、版本号以及组成部分。还提到了Linux发行版的概念,以及嵌入式Linux在物联网和设备开发中的应用。这部分内容可能在后续章节中会更深入地探讨Linux在嵌入式系统中的具体应用和开发实践。 总结来说,这篇文章主要关注的是Makefile的使用,特别是如何设置目标和依赖,以及如何利用预定义变量进行编译配置。同时,它也涉及到了Linux的基础知识,尤其是对于嵌入式系统开发者来说,这些知识是理解和操作Linux系统的关键。