一、缺少文件或目录
举例:
原因:
1.目录文件名错误
这种简单的笔误,如果编译器不报错,实际上是很难发现错误的。
2.未包含该文件所在的目录
make会默认在当前目录下寻找 .h 文件,假如说源文件不在当前目录下,make就找不到。
二、函数或变量未声明
举例:
原因:
1.未包含某个.c文件
有可能是 USB_Port_Set 所在的源文件未被包含。
2.包含的顺序错误
如果 aa.c 里需要用到 bb.c 中的内容,那么 aa.c 就需要放在 bb.c 的前面。
三、函数或变量重定义
举例:
原因:
1.重复包含.c文件
假如说同一个文件被包含多次,就会出现重定义的错误。
2.文件同名,但文件所在目录不同
如果文件同名,但所在目录不同,该文件就不是同一个文件,假如这两个文件中的内容有重复部分,那么就有可能出现重定义问题。所以,当一个程序或者项目的代码文件过多,一定要注意命名规则和文件目录。
3.文件名不同,但内容相同
假如同样的函数被定义在多个不同文件中,在链接的过程中就出现重定义错误。