MDK加载ST官方库出现:error: #256,原因是什么呢?

[复制链接]
7001|4
 楼主| liguang02 发表于 2013-4-23 21:33 | 显示全部楼层 |阅读模式
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

我是这样想的,大家怎么看的啊?
编译通过.JPG
错误.JPG
后来完整的.c库文件.JPG
后来完整的.h库文件.JPG
库文件.JPG
之前的.JPG
之前的库文件.JPG
 楼主| liguang02 发表于 2013-4-23 21:34 | 显示全部楼层
顶起来,大家知道真正的原因是什么么,有人说是用新的库文件,所以编译头文件时出现了混乱
 楼主| liguang02 发表于 2013-4-24 00:12 | 显示全部楼层
晕倒,原来缺少了一个头文件,不用把官方的所有头文件都加进去的啊,少了stm32f10x_conf.h,放在user或者libraries\inc目录下也行,就是指定好头文件路径就行了
 楼主| liguang02 发表于 2013-4-24 21:16 | 显示全部楼层
原来是stm32f10x_conf.h包含了所有的头文件,但工程里面只有两个库文件rcc,gpio,所以才会回到系统默认的目录查找,现在总算找到原因了,哈哈哈哈
黑八度 发表于 2015-8-3 21:33 | 显示全部楼层
楼主怎么解决的,我也遇到了同样的问题,求教
您需要登录后才可以回帖 登录 | 注册

本版积分规则

56

主题

307

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部