Makefile缺失库文件.a规则导致源文件未参与编译报错问题分析

1,编译报错,报错原因是在生成libtuner_ctrl_mgr.a库过程中,使用了目标tuner_rds_hsm_imp.o文件,而该C文件中调用的HSM_ini函数没有定义,相关关系在makefile中可以找到

2,查看工程代码,函数已经定义

3,打开hsm_engine.c中相关的makefile文件,可以看出正常编译是应该输出 hsm_engine.o文件,故意改错修改hsm_engine.c 内容,查找OUT文件夹下的目标文件 hsm_engine.o,并未找到,由以上两点可以断定hsm_engine.c并未参与编译,而且可以看出如果该文件参与编译,那么会输出satechar的库文件

4,同样在bb_tuner_ctrl_imp 的makefile 库中可以看出需要调用libstatechar.a 文件,但OUT/LIB/文件夹下并未生成libstatechar.a 库文件,由此可以得出问题是由于make没有生成 libstatechar.a产生的

5,在最外层 makefile中加入生成statechart库的规则

6,问题得到解决

        初学makefile,按照自己理解编写,可能存在问题,强烈需求大家多多指正赐教,非常感谢大家的宝贵意见,使得我不断进步,谢谢大家!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值