2017-10-20 3 views
0

STM32F7에서 LwIP를 구현합니다. 그리고 나는 문제가있다. 내가 STM32F7xx 용 C 코드의 s32_t 충돌 유형

#include "lwip.h" 

을 포함 할 때 나는이 경고를 얻을 : 's32_t'그것은 cc.h 파일에 에 대한 충돌 유형 : https://imgur.com/a/wkERF

:

여기
typedef signed  long s32_t; 

이 문제와 사진입니다

무엇이 잘못되었으며 어떻게 해결할 수 있습니까?

+1

가장 좋은 해결책은 또는 을 #include하여 거기에서 int32_t 유형을 사용하는 것입니다. –

+0

's32_t'는 이미 포함 된 헤더 파일 중 하나에 이미 정의되어 있습니다. 'typedef signed long s32_t; '를 제거하고 컴파일되는지 확인하십시오. –

+0

그리고 헤더의 정의는 아마도 그것이 'int'일 것입니다. 동일한 크기이지만 호환되지는 않습니다. –

답변

0

s32_t은 이미 포함 된 헤더 파일 중 하나에 이미 정의되어 있습니다. typedef signed long s32_t;과 다른 유사한 줄을 cc.h에서 제거하십시오.

이 오류는 다음 두 줄로 간단하게 재현 할 수 있습니다.

Live demonstration here

typedef signed int s32_t; 
typedef signed long s32_t; 

또한 lwip.hs32_t의 형식 정의를 검색하고 cc.h에, 이것은 당신에게 더 단서를 제공한다.

+0

이 줄을 추천하면 이제는 오류없이 프로그램을 사용할 수 있습니다 : '// typedef unsigned char u8_t; // typedef signed char s8_t; // typedef unsigned short u16_t; // typedef는 짧은 s16_t를 서명했습니다. // typedef unsigned long u32_t; // typedef가 긴 s32_t에 서명했습니다. ' – Jirka