2017-10-20 133 views
0

我在STM32F7上实现了LwIP。我有一个问题。当我包括STM32F7xx的c代码中s32_t的冲突类型

#include "lwip.h" 

我得到这样的警告:冲突的类型 's32_t' 它是cc.h文件:

typedef signed  long s32_t; 

下面是图片与问题:https://imgur.com/a/wkERF

什么是错,我该如何解决这个问题?

+1

最好的解决方案是#include 并从那里使用int32_t类型。 –

+0

's32_t'可能已经在您包含的其中一个头文件中定义。尝试删除'typedef signed long s32_t;'并查看它是否编译。 –

+0

而头文件中的定义可能是它是一个'int',它虽然大小相同,但是不兼容。 –

回答

0

s32_t可能已经在您包含的其中一个头文件中定义。尝试删除typedef signed long s32_t;和其他类似的行cc.h

这个错误可以简单地用下面两行来重现。

typedef signed int s32_t; 
typedef signed long s32_t; 

Live demonstration here

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