<>包含头文件的方式—优先在系统目录下找,对于 MDK来说就是优先在 MDK的安装目录里面查找,如果找不到就去用户所创建的工程里面找。
“” 包含头文件的方式—优先在当前目录下找,对于 MDK来说就是优先在用户所创建的工程里面找,如果找不到就去 MDK的安装目录里面查找。
MDK工程的独立性问题就由上面的两种包含方式而引起,如果大家在使用中不注意这个问题的话,有时候很多麻烦的问题就来了,根本原因是 MDK的安装目录里面也有芯片厂商库文件和其它的一些源码文件(比如 RTX操作系统)。可以想象,比如用户采用下面的方式添加头文件
#include <STM32F10x.h>
那么 MDK就会优先从安装目录里面去查找,如果用户升级了固件库,但是 MDK安装目录里面的是低版本的固件库,那么问题就来了,用户此时使用的固件库头文件是低版本的,而源码文件是高版本的。这时,最好的解决办法就是把 MDK中 No Auto Includes选项选上。
14、选上了这个选项以后,就不会从 MDK安装目录里面搜索头文件了,除了系统头文件,比 stdio.h, string.h等。如下是 MDK的 help文档对此选项的说明: