MapGIS10教程:理解库成员作为目标的规则与实践

需积分: 44 76 下载量 66 浏览量 更新于2024-08-10 收藏 2.1MB PDF 举报
本篇文章主要讲解的是关于Makefile中处理库成员作为目标的技巧。在Makefile编译系统中,静态库通常由多个对象文件(.o)组成,这些对象文件可以单独作为编译规则的目标。当作为目标的库成员使用时,需要遵循特定的书写格式,即"ARCHIVE(MEMBER)",其中"ARCHIVE"代表库名,"MEMBER"则是库中的特定对象文件。这种方式强调了库的成员性质,并且只适用于Makefile规则的目标和依赖部分,而非命令行,因为大多数命令不支持直接操作库成员。 创建库的实例中,如"foolib(hack.o)"规则,表明会将"hack.o"加入到库"foolib"中,实际操作可能通过"ar cr foolib hack.o"命令完成,这会利用隐含规则确保所需的.o文件已存在。如果需要添加多个成员,只需在括号中罗列它们,如"foolib(hack.o kludge.o)",等同于分别指定每个成员。 文章还提到了使用shell通配符,如"foolib(*.o)",它可以代表库中所有以".o"结尾的成员。但要注意,尽管通配符方便,但也可能存在文件名匹配的缺陷,需要谨慎使用。此外,Makefile中还涉及到了目录搜索、通配符功能(如wildcard)、伪目标、强制目标、空目标文件以及静态模式规则等内容,这些都是在处理库成员作为目标时可能会遇到的技术细节。 通过理解并掌握这些概念,Makefile编写者能够更有效地管理库成员,提高构建过程的效率和准确性。在整个教程中,作者还推荐读者查阅GNUmake的官方手册,以获取更深入的理解和具体的实践指导。