碰到一个怪异的问题,不好描述,关于make的问题
用“-I../include -I../lib_db-0.1”后,还是有一个告警
[***@lb ***_hmi]$ ./make
hmi_thread.c: In function 'time_roll_function':
hmi_thread.c:221: warning: implicit declaration of function 'lcd_print_small_text'
[**@lb ***_hmi]$
但是“hmi_thread.c”里使用了“#include "../include/p_driver.h"”后就没有这个告警,为什么?
经过吴**和我一起仔细查看,才注意到本地目录下还有一个“p_driver.h”,因此,编译“hmi_thread.c”时,由于使用的“#include "p_driver.h"”,因此会首先找本地的这个“p_driver.h”,而不会再去找“../include/p_driver.h”。
由于在本地的“p_driver.h”里没有发现“lcd_print_small_text()”声明,于是就有这个告警
把本地的“p_driver.h”干掉后,世界重归宁静...
以上是解决问题后逆向分析的过程,如果可以做到出现问题后思考找到解决办法,那就完美了,^_^
这个问题折射出的是一个不够仔细的问题,结合编译的基本过程,思考出报警的可能原因,找到解决方法
阅读(459) | 评论(0) | 转发(0) |