[英]Eclipse CDT indexer cannot resolve ae_f32 type
在嘗試將浮點C代碼移植到定點代碼時,我遇到了Eclipse CDT中的一個問題-索引器無法識別我用來替代標准C float
f32
類型。 該代碼可以編譯並正確構建(使用MinGW GCC編譯器)。 它是C和C ++代碼的混合體。
在Eclipse中看到數百條警告很煩人: Type f32 could not be resolved
。 這是在第三方DSP庫代碼中定義類型的方式:
#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...
為什么無法識別f32
類型?
解決了。
問題是.c
文件中的C和C ++混合在一起。 我有.c
擴展名的源代碼,它們具有ifdefed C ++代碼(#if defined(__cplusplus)
等),並且編譯器也設置為C ++。 但是,索引器將這些文件解析為C。當我生成索引器日志文件(Project \\ C C ++索引\\創建解析器日志文件)時,我注意到以下內容: Language: GNU C
然后我添加了語言映射:
Settings\\C C++ General\\Language Mappings
C Header file
映射到C++
C Source file
映射到C++
一旦我更改了它,它就會起作用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.