
Makefile--使用make更新函数库文件
查找 如果编译成功生成
发布日期:2021-05-24 22:26:49
浏览次数:22
分类:精选文章
本文共 968 字,大约阅读时间需要 3 分钟。
使用Make更新函数库文件
函数库文件的定义与打包命令
在Unix系统中,函数库文件(Library File)通常由ar
命令打包生成。函数库文件包含多个编译生成的中间文件(Object File, 即.o
文件),这些文件在程序运行时共同提供功能支持。
函数库成员的指定
函数库文件中的成员可以通过以下方式定义:
- 如果单独指定成员文件,格式为:
<库名> ( <成员文件> ) 成员文件> 库名>
例如:
foolib(hack.o) : hack.o ar cr foolib hack.o
- 如果定义多个成员文件,成员文件需要用空格分隔:
foolib(hack.o kludge.o)
等价于分别执行:
foolib(hack.o) foolib(kludge.o)
- 支持Shell文件通配符定义,例如:
foo.a(*.o)
这表示所有
.o
文件都会被打包到foo.a
中。
内建隐含规则的应用
在Makefile中,如果目标是形如"a.m"形式
,隐含规则会将目标转换为"m"
形式。特别是,当规则形式为"foo.a(bar.o)"
时,Make会自动查找"bar.o"
的规则。如果没有定义,Make会执行以下操作:
"bar.c"
文件进行编译。"bar.o"
文件,则执行"ar r foo.a bar.o"
命令打包。后缀规则的应用
通过定义suffix规则,制定自动化打包流程。例如:
.c.o : $(CC) $(CFLAGS) $(CPPFLAGS) -c $< mv $*.o $*.o$.a*$$.o :: $(AR) r $@ $< $(RM) -f $*
该规则等同于:
%.o : %.c $(CC) $(CFLAGS) $(CPPFLAGS) -c $< mv $*.o $*.o
打包后,通过$(RM)
命令清除中间文件。
使用注意事项
- 避免并行处理 (
-j
参数): 为了避免同时运行多个ar
命令,造成函数库文件损坏,建议以-j 1
调用Make。 - 清理操作: ensure定期清理对象文件与函数库文件,防止过期或资源耗尽导致失败。
通过上述配置和技巧,Makefile可以自动化地管理函数库的打包与更新流程,提高开发效率。
发表评论
最新留言
路过按个爪印,很不错,赞一个!
[***.219.124.196]2025年05月09日 22时26分53秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
flink启动(二)
2019-03-09
pair的用法
2019-03-09
Flex 布局的自适应子项内容过长导致其被撑大问题
2019-03-09
PL/SQL 动态Sql拼接where条件
2019-03-09
Thymeleaf sec:authorize 标签不生效
2019-03-11
Flask--简介
2019-03-11
Frame--Api框架
2019-03-11
Boostrap技能点整理之【网格系统】
2019-03-11
javaWeb服务详解(含源代码,测试通过,注释) ——Emp的Dao层
2019-03-11
Git简单理解与使用
2019-03-11
echarts 基本图表开发小结
2019-03-11
adb通过USB或wifi连接手机
2019-03-11
JDK9-15新特性
2019-03-11
TreeSet、TreeMap
2019-03-11
JVM内存模型
2019-03-11
可变长度参数
2019-03-11
3、条件查询
2019-03-11
cordova打包apk更改图标
2019-03-11
GitHub上传时,项目在已有文档时直接push出现错误解决方案
2019-03-11