出现上面这个问题时我查了一下,有说用管理员身份打开keil软件就能进行正常的编译,我试了一下发现可以,然后我就思考这个问题:能不能不用每次用管理员身份打开就能顺利编译呢,分析问题如下
1.用管理员身份运行能成功编译说明keil的文件stdint.h应该没问题,文件应该是存在且正常的,并不需要像网上有些说的那样要重装keil或者是要在工程中再添加文件
2.既然文件没问题,那么就应该是keil在编译的时候没有找到这个文件导致报错,这让我想到了之前碰过的一个类似的问题,也是出现报错说什么哪个文件找不到什么的,上次那个问题的出现是因为ads和keil的环境变量出现了冲突,所以我猜测是环境变量出了问题导致keil无法找到这个文件最终导致报错。
3.打开系统的环境变量选项,发现环境变量有系统环境变量和用户环境变量之分,在用户环境变量里有个 变量名为ARMCC5LIB 变量值为Y:\software\keil5\ARM\ARMCC\lib的变量,这时我就明白了:这个变量是用来控制keil的查找路径的,有了这个变量keil就能顺利找到文件,而用户环境变量是给用户用的也就是管理员用的系统变量是系统使用者都能用的,所以当以管理员身份打开时编译没有错误。解决办法很简单,就是在系统变量里面新建一个这个变量。(注意:因为每个人keil的安装路径可能不同,所以ARMCC5LIB的变量值也可能不同,请将变量值设置为keil安装路径下的\keil5\ARM\ARMCC\lib)