我在STM32F7上實現了LwIP。我有一個問題。當我包括STM32F7xx的c代碼中s32_t的衝突類型
#include "lwip.h"
我得到這樣的警告:衝突的類型 's32_t' 它是cc.h文件:
typedef signed long s32_t;
下面是圖片與問題:https://imgur.com/a/wkERF
什麼是錯,我該如何解決這個問題?
我在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
,這應該給您提供進一步的線索。
我讚揚這一行,現在程序沒有錯誤: '// 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',它雖然大小相同,但是不兼容。 –