GNU make 中的库成员目标与规则详解
需积分: 4 63 浏览量
更新于2024-08-09
收藏 978KB PDF 举报
"这篇文档是关于GNUmakefile的使用指南,特别是如何将库成员作为目标进行编译和管理。文章提到了在makefile中处理静态库的规则,以及如何通过`ARCHIVE(MEMBER)`的形式来指定库成员。文档强调了这种语法只能用于规则的目标和依赖,而不适用于命令行,因为大多数命令不支持直接对库成员的操作。通过示例展示了如何使用`ar`命令创建和更新库。此外,文档还介绍了使用shell通配符来指定多个库成员,以及如何处理库的所有成员。文档出自2004年9月11日的GNUmake中文手册,由徐海兵翻译整理,涵盖了makefile的多个核心概念,包括规则、变量、自动推导、条件语句、目录搜索等。"
在GNUmakefile中,库成员可以被独立地作为规则的目标进行处理。比如,一个静态库通常由多个`.o`文件组成,这些文件被称为库的成员。当你需要将某个`.o`文件加入到库中时,可以使用`ARCHIVE(MEMBER)`的格式。例如,创建名为`foolib`的库并添加`hack.o`成员的规则如下:
```make
foolib(hack.o) : hack.o
ar cr foolib hack.o
```
这条规则首先创建了`hack.o`,然后使用`ar`命令将其添加到`foolib`库中。值得注意的是,`ar`命令通常用于管理和操作静态库,它的具体用法可以查看man手册。如果需要一次性添加多个成员,可以在括号中列出,如`foolib(hack.o kludge.o)`,这相当于执行两个单独的规则。
此外,使用shell通配符可以方便地处理库中的多个成员。例如,`foolib(*.o)`表示库`foolib`中的所有`.o`成员。这种通配符的使用方式在4.4节中有所介绍,包括其优点和可能存在的问题,并提到了`wildcard`函数,它用于获取当前目录下匹配通配符的文件名列表。
文档还涵盖了makefile的基本结构和规则,如Makefile的组成部分、变量的设定、自动规则推导、清除工作目录的规则等。通过示例和详细的解释,帮助读者理解如何编写和使用makefile来组织和自动化编译过程。在3.9节中,讨论了make解析makefile的机制,包括变量的求值、条件语句的处理以及规则的定义。此外,还讲解了如何处理目录搜索、隐含规则、多目标和静态模式规则等高级特性。整个文档旨在为读者提供一个全面的GNUmakefile使用指南。
2020-10-16 上传
161 浏览量
点击了解资源详情
点击了解资源详情
2020-10-16 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
liu伟鹏
- 粉丝: 24
- 资源: 3851
最新资源
- IETI-LAB7-2021
- emd.rar_matlab例程_matlab_
- Xbee-boss:使用Paul Malmstem的python xbee库
- ETL_Project:GWU Bootcamp ETL项目
- OpenCV-MinGW-Build::eyes:MinGW在Windows上编译的OpenCV32位和64位版本。 包括OpenCV 3.3.1、3.4.1、3.4.1-x64、3.4.5、3.4.6、3.4.7、3.4.8-x64、3.4.9、4.0.0-alpha-x64、4.0.0- rc-x64、4.0.1-x64、4.1.0、4.1.0-x64、4.1.1-x64、4.5.0-with-contrib
- data-structures-and-algorithms
- contentful.swift:与Contentful的内容交付API的令人愉快的Swift接口
- StackStockRouter
- speaker_recognition.rar_语音合成_matlab_
- Allow CORS: Access-Control-Allow-Origin-crx插件
- pairgame-heroku
- 参考资料-WI-NK0103公司会议制度管理规定(09.04.30改).zip
- Golang_Homework
- TopAnimes是一个示例动漫Android应用程序-Android开发
- Landing-Page:我的编程产品组合的目标页面
- 快车时间