STM32F7xx的c代码中s32_t的冲突类型
问题描述:
我在STM32F7上实现了LwIP。我有一个问题。当我包括STM32F7xx的c代码中s32_t的冲突类型
#include "lwip.h"
我得到这样的警告:冲突的类型 's32_t' 它是cc.h文件:
typedef signed long s32_t;
下面是图片与问题:https://imgur.com/a/wkERF
什么是错,我该如何解决这个问题?
答
s32_t
可能已经在您包含的其中一个头文件中定义。尝试删除typedef signed long s32_t;
和其他类似的行cc.h
。
这个错误可以简单地用下面两行来重现。
typedef signed int s32_t;
typedef signed long s32_t;
在lwip.h
还搜索的s32_t
typedef和在cc.h
,这应该给您提供进一步的线索。
+0
我赞扬这一行,现在程序没有错误: '// typedef unsigned char u8_t; // typedef signed char s8_t; // typedef unsigned short u16_t; // typedef signed short s16_t; // typedef unsigned long u32_t; // typedef signed long s32_t;' – Jirka
最好的解决方案是#include或并从那里使用int32_t类型。 –
's32_t'可能已经在您包含的其中一个头文件中定义。尝试删除'typedef signed long s32_t;'并查看它是否编译。 –
而头文件中的定义可能是它是一个'int',它虽然大小相同,但是不兼容。 –