2017-10-20 130 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