1、undefined reference to ‘***’
该报错核心问题是没有正确获取定义的链接,没有正确生成对应的动态或静态库,对于不同的工程,要明确链接方式,一般是通过cmake文件,保证链接地址正确。
可能原因:
如果该函数应在自建工程内定义可能有如下原因:
.c文件中没有函数定义
对应c文件没有加到工程.c列表里面
引用与定义函数名不对应
特别的,某些工程不是使用cmake编译的需要根据工程编译方式查找是否在链接列表里面
如果应在标准库内定义可能有如下原因:
链接选项未正常加载库
2、fatal error: *.h: No such file or directory
对应.h文件没有在include路径中,常见原因有:
①头文件路径没有包含在include路径中
②头文件命名与include头文件名不对应
③特别的,某些工程不是使用cmake编译的需要根据工程编译方式查找是否在include列表里面
3、warning: implicit declaration of function ‘***’ [-Wimplicit-function-declaration]
常见原因:头文件ifndef命名重叠 没有正确声明
没包含头文件
4、‘***’ undeclared
本质是未发现函数声明
常见原因:
头文件防止重复定义处重名
函数没声明
函数声明名字错误
.h文件不在cmake include路径里面
5、can’t get [***] cfg file, not exit or emtpy.
在指定目录下没有***文件
更多推荐
C语言常见报错汇总
发布评论