理解Makefile的隐含规则与C程序编译
需积分: 41 68 浏览量
更新于2024-08-08
收藏 829KB PDF 举报
"这篇文档详细介绍了Makefile的隐含规则,特别是针对C程序的编译。作者强调理解并掌握makefile对于成为一名专业的程序员至关重要,因为它关乎到工程的编译流程和自动化。文中提到,尽管Windows的IDE通常会自动生成Makefile,但在Unix环境下,手动编写makefile是必要的。Makefile通过定义文件依赖关系,使得只需运行`make`命令就能自动完成整个工程的编译。文档还指出,虽然不同平台的make工具可能语法略有差异,但核心都是基于文件依赖性的管理。
文章主要关注的是GNU make,它是最广泛使用的make工具,并且遵循POSIX.2标准。以C/C++编程语言为例,文档讲解了如何编写和使用Makefile,包括C程序的隐含规则。默认的编译器是UNIX下的GCC和CC。文档的部分内容提到了隐含规则,如`.o`文件的目标通常依赖于`.c`文件,编译命令通常是编译器的`gcc`或`cc`。
隐含规则是Makefile中的一个重要概念,它们是一组预设的规则,make工具会在找不到显式规则时使用。例如,当目标是`.o`文件时,make会默认查找对应的`.c`文件,并使用`gcc -c`或`cc -c`命令进行编译。用户可以通过`-r`或`--no-builtin-rules`选项禁用所有内置的隐含规则,但这不会影响由`SUFFIXES`列表定义的后缀规则。
默认的后缀列表包括`.out`, `.a`, `.ln`, `.o`, `.c`, `.cc`, `.C`, `.p`, `.f`, `.F`, `.r`, `.y`, `.l`, `.s`, `.S`, `.mod`, `.sym`, `.def`, `.h`, `.info`, `.dvi`, `.tex`, `.texinfo`, `.texi`, `.txinfo`, `.w`, `.ch`, `.web`, `.sh`, `.elc`, `.el`等,这些规则会在没有显式规则时自动应用。文档中并未提供所有隐含规则的详细列表,但提到了C程序的编译规则作为示例。
在实际开发中,用户可以根据工程需求自定义规则,覆盖或扩展这些隐含规则,以实现特定的编译或构建逻辑。例如,添加预处理步骤、编译选项,或者处理其他类型的源文件。通过熟练掌握Makefile的隐含规则和自定义规则,开发者可以更高效地管理和构建复杂的软件项目。
371 浏览量
315 浏览量
177 浏览量
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
2021-05-20 上传
777 浏览量
吴雄辉
- 粉丝: 49
- 资源: 3743
最新资源
- CVS与配置管理.ppt
- linux命令大全~~~~~~
- 软件测试规范使你更加了解软件测试的规则
- sql语法帮助大全sql
- CISCO IOS名称意义详解
- Measurement technique for characterizing memory effects in RF power amplifiers
- Eclipse中文教程
- Microsoft Introducing Silverlight 2.0
- MyEclipse6 中文教程
- Java水晶报表教程
- Linux菜鸟过关(赠给初学者)
- Test.Driven.TDD.and.Acceptance.TDD.for.Java.Developers
- 编写高效简洁的C语言代码
- AIX 5L 安装手册
- Linux下的shell与make
- C#.Net函数方法集