近期在做项目时,计划添加一个测距模块,因此要新建一个c文件封装一些函数,方便调用,在实际操作时遇到了以下两个问题
1.编译时报错:error:no such file or dictionary
原因一般是没有正确添加头文件,如图,首先在某个文件夹下添加头文件,一般要保证头文件的命名和c文件保持一致
然后打开keil,在左上角的工具栏(和编译,下载等在同一行),找到像魔术棒一样的option for target图标,点击,进入c/c++标签页,电机include path,将之前所说的文件夹添加到路径下,搞定
假如编译仍然无法通过,则可能是c文件中inlcude头文件的名字打错
2.error:identifier "xxxxx" is undefined
原因可能有以下几种
1.“xxxxx”的名字打错,解决方法:改正即可
2.没有在被引用的头文件中声明"xxxxx",解决方法:回到该头文件中,添加 extern 类型 xxxxxx
3.没有引用定义"xxxxxx"的头文件,解决方法:在c文件中include对应的头文件
4.在.h文件中没有添加#ifndef __XXXX_H___ #define __XXXX_H__导致重复编译,解决方法:添加该字段即可