在尝试将浮点C代码移植到定点代码时,我遇到了Eclipse CDT中的一个问题 - 索引器无法识别我用来替换标准C f32
的{{1}}类型}。代码编译和构建正常(使用MinGW GCC编译器)。它是C和C ++代码的混合体。
在Eclipse中看到数百个警告很烦人:float
。这是在第三方DSP库代码中定义类型的方式:
Type f32 could not be resolved
为什么不会识别#define B_(X) b_##X
...
#define f32 B_(f32)
...
/* type declarations */
#define DECLARE_TYPE(s) \
namespace s##_space { \
class s##_; \
} \
typedef s##_space::s##_ s;
...
DECLARE_TYPE(f32);
...
namespace f32_space
{
//etc...
类型?
答案 0 :(得分:0)
解决了它。
问题是.c
文件中C和C ++的混合。我有.c
扩展名的源代码,其中包含ifdefed C ++代码(#if defined(__cplusplus)
等),并且编译器也设置为C ++。然而,Indexer将这些文件解析为C.当我生成索引器日志文件(Project \ C C ++索引\创建解析器日志文件)时,我注意到以下内容:Language: GNU C
。
然后我添加了语言映射:
Settings\C C++ General\Language Mappings
C Header file
映射到C++
C Source file
映射到C++
一旦我改变了它,它就有效了。