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语言常见报错汇总