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,按照自己理解编写,可能存在问题,强烈需求大家多多指正赐教,非常感谢大家的宝贵意见,使得我不断进步,谢谢大家!!