为什么明明头文件中有此符号定义,编译时却显示找不到?

2019-12-25 18:48发布

嗯,那个, 我用keil5.1,arm gcc编译器 mirco-lib进行了勾选

然后编译的时候显示a.c文件编译后的a.o文件里引用的符号,姑且叫FOO吧,不存在。这
个东西其实是个结构体的。

然后我就下意识的去.c文件找了。

结果奇葩的是,这个对应的.c文件里根本没有用到这个符号FOO……呃,,

然后我在搜索工具里面搜索整个工程,发现FOO在多处被引用,其中一处在
a.c的包含的头文件bc.h里面。

然后我就打开bc.h,发现里面对FOO的原型进行了定义,形式如下:

  1. typedef   struct      
  2.     {   
  3.         ...
  4.     } FOO_t
复制代码
然后后面有一处是

  1.         FOO_t FOO;
复制代码

其它还有好几处引用……但是都看不出什么问题、、、

就是这样……照道理来说,应当没有任何问题的,但是只要一
编译,就显示a.o里面引用的符号FOO找不到。

这个……我觉得好无语……大家能不能想到可能的原因?我总结罗列下一个个去试,排除法,,

最后弱弱问下,我好久没来,大家想我了没有呼呼^_^
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。