今天分享一个也可能会提示“Error L6218E Undefined symbol enet_delay (referred from xxxx.o)”错误的一种情况。
首先这个从这个错误提示,可以知道我的enet_delay是没有定义的,但是我查了一下这个函数是有定义的,而且我也调用了这个包含这个函数的头文件,那怎么会提示没有定义呢?原来仔细一看,这个函数被定义为了static性质,也就是静态函数。也就是说这个函数只能在自己的文件域里面使用,不能被其他文件所调用,所以调用才会提示没有定义。
同时在提示这错误时候,keil编译器也会提示:
Not enough information to list image symbols.
Not enough information to list load addresses in the image map.
这两句意思也是提示你没有定义相应的符号名。
所以,如果遇到这种错误提示,正好自己调用的是外部的文件,加上自己头文件也调用了,可能其中一种可能就是你调用的变量或者函数被定义为了static,解决方法就是:将该函数前面的staic去掉,如果头文件里面也有,记得也去掉。
本人水平有限,上述信息仅供参考,如有错误和不妥之处,请多多指教。
另外创作不易,请勿抄袭,如果有帮助到大家的话希望大家可以点个赞,谢谢~