F:\keil\ARM\INC\ST\STM32F10x\stm32f10x_type.h(23): error: #256: invalid redeclaration of type name "s32" (declared at line 487 of "cmsis\stm32f10x.h")
之前libraries目录下面只有gpio,rcc两个库文件,结果在编译的时候就出现上面的错误,说是重定义的错误,但后来想想不对,根本不是重定义的错误,因为这个头文件stm32f10x_type.h 我根本就没有包含进去,后来对比了一下别人的,把别人的整个库文件,也就是官方的库文件整个完整地复制到libraries目录下面,结果完全编译通过。
我自己猜测的原因是:错了啊,根本就不是重复定义,是你自己的库文件只放了你自己要用的其中几个,你把官方完整的STM32F10x_StdPeriph_Driver文件夹下的两个完整文件夹inc,src全部放进去,再在group中包含自己需要用到的库文件就可以了,因为mdk在编译你的库文件时可能需要引用其他的头文件,你不全部放进去的话就找不到需要的头文件,最终编译器找不到路又回到自己的缺省目录下, 就会到系统默认的目录查找
F:\Keil\ARM\INC\ST\STM32F10x\stm32f10x_type.h
我是这样想的,大家怎么看的啊? |