编写跨平台Makefile的规则与约定详解
需积分: 44 79 浏览量
更新于2024-08-10
收藏 2.1MB PDF 举报
本资源是一份关于规则命令行约定的MapGIS 10教程,主要针对编写多系统兼容Makefile时需要注意的细节。作者强调了书写Makefile时应遵循的规范,以确保跨平台的兼容性。以下是关键知识点:
1. **命令选择**:
- 为了避免系统间的不兼容,推荐使用`sh`作为Makefile规则的默认命令解释器,而非`csh`。
- `configure`脚本及Makefile中的命令建议使用通用选项,例如使用`mkdir -p`而非仅在特定系统上可用的选项。
2. **工具限制**:
- 避免在规则命令行中创建符号链接(如`ln`),因为并非所有系统都支持,特别指出MS-DOS系统可能不支持。
- 建议使用变量代表编译器和工具命令,如`$(AR)`、`$(CC)`等,以便于统一管理和修改。
3. **压缩和管理目标**:
- 可以在`dist`目标的命令行中使用`gzip`进行压缩。
- 当使用如`ranlib`、`ldconfig`等工具时,需检查系统支持情况,提供提示而非强制退出。
4. **伪目标与特殊目标**:
- 介绍了Makefile中的伪目标,如`clean`、`install`等,它们没有实际的执行命令,但有特定的作用。
- 强制目标(无命令或依赖的规则)和空目标文件的处理。
- 特殊目标如多目标、多规则目标和静态模式的规则定义和语法。
5. **搜索路径设置**:
- 使用`VPATH`变量进行一般搜索,`vpath`关键字用于选择性搜索。
- 详细解释了目录搜寻的机制,包括命令行搜索目录和隐含规则对搜索路径的影响。
6. **Makefile结构和解析**:
- Makefile的组成部分,如内容、命名规则、包含其他Makefile、变量如`MAKEFILES`和`MAKEFILE_LIST`的使用。
- 描述了Makefile解析过程,包括变量取值、条件语句和规则的定义。
通过这份教程,读者可以掌握编写多平台兼容Makefile的技巧,确保其在不同操作系统环境下的有效运行。同时,理解Makefile规则的复杂性和灵活性对于构建和维护软件项目至关重要。
2011-10-20 上传
2020-02-26 上传
2012-09-25 上传
点击了解资源详情
2021-04-30 上传
2009-01-05 上传
2010-08-10 上传
2009-09-21 上传
点击了解资源详情
思索bike
- 粉丝: 38
- 资源: 3975
最新资源
- 前端协作项目:发布猜图游戏功能与待修复事项
- Spring框架REST服务开发实践指南
- ALU课设实现基础与高级运算功能
- 深入了解STK:C++音频信号处理综合工具套件
- 华中科技大学电信学院软件无线电实验资料汇总
- CGSN数据解析与集成验证工具集:Python和Shell脚本
- Java实现的远程视频会议系统开发教程
- Change-OEM: 用Java修改Windows OEM信息与Logo
- cmnd:文本到远程API的桥接平台开发
- 解决BIOS刷写错误28:PRR.exe的应用与效果
- 深度学习对抗攻击库:adversarial_robustness_toolbox 1.10.0
- Win7系统CP2102驱动下载与安装指南
- 深入理解Java中的函数式编程技巧
- GY-906 MLX90614ESF传感器模块温度采集应用资料
- Adversarial Robustness Toolbox 1.15.1 工具包安装教程
- GNU Radio的供应商中立SDR开发包:gr-sdr介绍