本人为初学者,不对的地方欢迎指正。在编译项目是出现以上提示问题,查找很多资料以及搜索相关答案,主要出现的原因大致总结如下:
1.当编译出.o文件以后出现该问题,原因是因为只做了函数声明,未实现函数。我的错误就是这样引发的,但是粗心的我不仅仅是这样,因为的我的函数体实现了,却还报这样的问题,找了好久,原来是因为项目中使用了#ifdef xxx #endif;因为未定义xxx,刚好将该函数注释掉了,如果有朋友发现自己声明了也实现了函数却出现此提示可以看一下是否被这种方法注释掉了,修改一个下午呢,血泪史,一定要铭记这种错误。。。。。。。
2.编译时未加入依赖文件,自己写的.c记得加进去,这种情况一般出现在没有用Makefile编译的场景,或者你的Makefile写的不够好。
3.部分需要在编译时链接相关库,按照错误提示链接上即可解决
4.如果以上都不是,大概是因为依赖文件的顺序编译出错,按照严格的依赖关系编译即可。大多比较严谨、优秀的Makefile是不会出现这种情况的。