尽管我包含了uint32_t
并设置了预处理程序路径,但我的日食确实对uint16_t
,<stdint.h>
等添加了红色下划线!
要知道为什么会发生,我查看了<stdint.h>
。
#ifndef _GCC_WRAP_STDINT_H
#if __STDC_HOSTED__
# if defined __cplusplus && __cplusplus >= 201103L
# undef __STDC_LIMIT_MACROS
# define __STDC_LIMIT_MACROS
# undef __STDC_CONSTANT_MACROS
# define __STDC_CONSTANT_MACROS
# endif
# include_next <stdint.h> // here
#else
# include "stdint-gcc.h"
#endif
#define _GCC_WRAP_STDINT_H
#endif
嗯,我认为月食似乎无法识别
#include_next
。但是我不知道解决方案。.你能给我个建议吗? 最佳答案
首先,为了避免#include_next
,我们应该告诉eclipse __STDC_HOSTED__
是0
。在Project
> Properties
> C/C++ General
> Path and Symbols
中,将__STDC_HOSTED__
添加为0
。
其次,您可以在stdint-gcc.h
中看到类似以下代码的代码。
#ifdef __INT8_TYPE__
typedef __INT8_TYPE__ int8_t;
#endif
__INT8_TYPE__
是gcc的预定义宏。我们也必须把它们告诉日食。因此,添加gcc -E -dM - < /dev/null
中除我们之前添加的__STDC_HOSTED__
以外的所有宏。关于gcc - eclipse cdt无法解析<stdint.h>,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23318481/