打印

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

[复制链接]
6441|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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 (38.64 KB )

之前的库文件.JPG

之前的.JPG (41.05 KB )

之前的.JPG

库文件.JPG (36.67 KB )

库文件.JPG

后来完整的.h库文件.JPG (112.92 KB )

后来完整的.h库文件.JPG

后来完整的.c库文件.JPG (106.25 KB )

后来完整的.c库文件.JPG

错误.JPG (107.68 KB )

错误.JPG

编译通过.JPG (122.42 KB )

编译通过.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,所以才会回到系统默认的目录查找,现在总算找到原因了,哈哈哈哈

使用特权

评论回复
5
黑八度| | 2015-8-3 21:33 | 只看该作者
楼主怎么解决的,我也遇到了同样的问题,求教

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

56

主题

307

帖子

2

粉丝