你好,
我在用2812芯片,用到IQmathLib.h,另外还用到
typedef int int16;
typedef long int32;
typedef unsigned int Uint16;
typedef unsigned long Uint32;
typedef float float32;
typedef long double float64;
ti中有dmctype.h和DSP281x_Device.h两个头文件均定义了上述数据类型,但是不管我用那个头文件参与编译,编译均会出现warning: typedef name has already been declared (with same type) 的警告,查找原因发现是IQmathLib.h中的long数据类型与dmctype.h或DSP281x_Device.h中的long重定义。请问如何使用Q格式和int32才能消除上述警告。谢谢。
yang yigao:
怎么就我的问题没有回答啊。。。。。??
你好,
我在用2812芯片,用到IQmathLib.h,另外还用到
typedef int int16;
typedef long int32;
typedef unsigned int Uint16;
typedef unsigned long Uint32;
typedef float float32;
typedef long double float64;
ti中有dmctype.h和DSP281x_Device.h两个头文件均定义了上述数据类型,但是不管我用那个头文件参与编译,编译均会出现warning: typedef name has already been declared (with same type) 的警告,查找原因发现是IQmathLib.h中的long数据类型与dmctype.h或DSP281x_Device.h中的long重定义。请问如何使用Q格式和int32才能消除上述警告。谢谢。
Eric Ma:
yigao,
我不认为是long的重定义,应该是你对Uint32或是其他类似Uint16等出现两个不同地方的typedef。例如在IQmath.lib.h中typedef long Uint32,然后在dmctype.h中typedef int Uint32(举例而已,主要说明重定义指的是后面的那个新类型),这时候编译器就会警告你的Uint32重定义了。所以我认为只要找到哪个地方重定义,注释掉就可以了。
所以我看了一下dmctype.h或DSP281x_Device.h,都出现了一下相同的定义,所以会有编译警告,你只要把其他一个dmctype.h中这些注释掉,然后在需要包含这个dmctype.h的头文件时,换成DSP281x_Device.h即可。
typedef int int16;typedef long int32;typedef unsigned int Uint16;typedef unsigned long Uint32;typedef float float32;typedef long double float64;
新年快乐!心想事成!
Eric
你好,
我在用2812芯片,用到IQmathLib.h,另外还用到
typedef int int16;
typedef long int32;
typedef unsigned int Uint16;
typedef unsigned long Uint32;
typedef float float32;
typedef long double float64;
ti中有dmctype.h和DSP281x_Device.h两个头文件均定义了上述数据类型,但是不管我用那个头文件参与编译,编译均会出现warning: typedef name has already been declared (with same type) 的警告,查找原因发现是IQmathLib.h中的long数据类型与dmctype.h或DSP281x_Device.h中的long重定义。请问如何使用Q格式和int32才能消除上述警告。谢谢。
yang yigao:
回复 Eric Ma:
所以我看了一下dmctype.h或DSP281x_Device.h,都出现了一下相同的定义,所以会有编译警告,你只要把其他一个dmctype.h中这些注释掉,然后在需要包含这个dmctype.h的头文件时,换成DSP281x_Device.h即可。
可是我就是按照你说的这么办的,依然会有这样的warning。。。。
你好,
我在用2812芯片,用到IQmathLib.h,另外还用到
typedef int int16;
typedef long int32;
typedef unsigned int Uint16;
typedef unsigned long Uint32;
typedef float float32;
typedef long double float64;
ti中有dmctype.h和DSP281x_Device.h两个头文件均定义了上述数据类型,但是不管我用那个头文件参与编译,编译均会出现warning: typedef name has already been declared (with same type) 的警告,查找原因发现是IQmathLib.h中的long数据类型与dmctype.h或DSP281x_Device.h中的long重定义。请问如何使用Q格式和int32才能消除上述警告。谢谢。
Eric Ma:
回复 yang yigao:
yang,
那你应该在搜索一下看你工程的头文件中哪里还有重复定义。例外,这样的warning不会影响你工程编译。
Eric