GNU make基本约定与Makefile编写指南
需积分: 35 140 浏览量
更新于2024-08-09
收藏 1.02MB PDF 举报
"该文主要介绍了在编写Makefile时应当遵循的基本约定,特别是针对不同make版本的兼容性问题。文章提到了三个关键点:设置`SHELL`变量以避免环境变量冲突,谨慎处理后缀和隐含规则,以及在规则中明确指定文件路径。此外,文章还概述了make工具在Linux环境中的重要性,强调了编写Makefile对于自动化编译的益处,并简要提及了Makefile的结构和功能。"
在Linux或Unix环境下,GNU make是一个不可或缺的工具,它用于管理和构建工程,通过Makefile来定义编译规则。Makefile包含了源文件的编译方式、库文件的创建和最终可执行文件的生成。编写Makefile虽然初期可能复杂,但一旦完成,只需执行一次`make`命令即可自动完成整个工程的编译,大大提升了效率。
为了确保Makefile在不同版本的make中都能正确工作,文章提供了几个最佳实践:
1. 在每个Makefile开头设定`SHELL = /bin/sh`,确保使用固定的shell,防止因系统环境变量导致的错误,尤其是在非GNU make环境下。
2. 清空并重新定义`.SUFFIXES`,以避免不同make对后缀和隐含规则的不同理解。先用`.SUFFIXES:`清空默认后缀,再用`.SUFFIXES: .c .o`指定所需后缀,这样可以确保只使用特定的后缀进行编译。
3. 规则中的文件路径应明确指出,例如使用`./`表示当前目录,`$(srcdir)`表示源代码目录。在源代码目录与构建目录不同时,可以通过`configure`脚本的`--srcdir`选项指定源代码位置。
文章还指出,虽然关于GNU make和Makefile的详细中文文档较少,但学习和掌握Makefile的编写对于Linux程序员至关重要,因为它不仅适用于C语言工程,还可以管理其他能在shell下运行的编程语言的项目,而且能执行除编译外的其他任务。本文以RedHat FC3集成的GNU make为例,用C语言源程序作为示例,但强调make工具的通用性。
2019-08-10 上传
2019-08-10 上传
2021-07-09 上传
点击了解资源详情
2023-04-13 上传
2023-04-13 上传
2023-04-11 上传
liu伟鹏
- 粉丝: 24
- 资源: 3899
最新资源
- WPF渲染层字符绘制原理探究及源代码解析
- 海康精简版监控软件:iVMS4200Lite版发布
- 自动化脚本在lspci-TV的应用介绍
- Chrome 81版本稳定版及匹配的chromedriver下载
- 深入解析Python推荐引擎与自然语言处理
- MATLAB数学建模算法程序包及案例数据
- Springboot人力资源管理系统:设计与功能
- STM32F4系列微控制器开发全面参考指南
- Python实现人脸识别的机器学习流程
- 基于STM32F103C8T6的HLW8032电量采集与解析方案
- Node.js高效MySQL驱动程序:mysqljs/mysql特性和配置
- 基于Python和大数据技术的电影推荐系统设计与实现
- 为ripro主题添加Live2D看板娘的后端资源教程
- 2022版PowerToys Everything插件升级,稳定运行无报错
- Map简易斗地主游戏实现方法介绍
- SJTU ICS Lab6 实验报告解析