xiepeilin 发表于 2010-5-11 16:48

MDK编译时候总是出现重定义怎么处理?

最佳在编译的时候总是出现..\Libraries\inc\stm32f10x_type.h(33): error:#256: invalid redeclaration of type name "vs32" (declared at line 320 of "C:\Keil\ARM\INC\ST\STM32F10x\stm32f10x.h")怎么处理啊?stm32f10x_type.h是文件自动调用的,stm32_eth.c这个文件里只包含了include "stm32_eth.h"和#include "stm32f10x_rcc.h"没有包含stm32f10x_type.h和stm32f10x.h而stm32f10x_type.h和stm32f10x.h编译时候都说相互重复声明
望大家给个意见啊?非常感谢!

db10 发表于 2010-5-12 17:56

可能你调用include "stm32_eth.h"和#include "stm32f10x_rcc.h"时用到了stm32f10x_type.h和stm32f10x.h
1。你可以先将你函数部分或者stm32f10x_type.h和stm32f10x.h
用到"vs32"的用别的内似的定义代替试试。
或者2.看看include "stm32_eth.h"和#include "stm32f10x_rcc.h还有stm32f10x_type.h和stm32f10x.h 用的时候是否有多重错误包含调用。
3.你找不出来了,我再给你想

db10 发表于 2010-5-12 17:57

自己要勤快,多找啊

hgjinwei 发表于 2010-5-13 12:38

应该是加载的库和MDK内部的库有冲突,要么放弃“Libraries”这个文件夹下的库,要么放弃"C:\Keil\ARM\INC\ST"下的库,自己看着办吧。

xiepeilin 发表于 2010-9-12 16:21

大概就是按照楼上二位的方法解决的,非常感谢呵呵

linjing 发表于 2010-9-13 20:45

检查一下所有文件的版本是否一至,2.0的库与3.0的库混在一起用就容易出这样的问题

zhiyonghe 发表于 2011-11-9 16:37

这种问题肯定是出在加载的库和MDK内部的库有冲突

但上面的回答让新手们很难找到解决之道

其实新手们只要注意找到stm32f10x_conf.h这个文件 ,然后在option->c/c++下的路径注意包含就OK 咯

st316 发表于 2012-11-28 08:49

7楼的方法验证可用
页: [1]
查看完整版本: MDK编译时候总是出现重定义怎么处理?