2017-01-17 21 views
0

浮動小数点Cコードを固定小数点コードに移植しようとしている間、Eclipse CDTの問題が発生しました - インデクサーは標準Cの代わりにf32タイプを認識しませんfloat 。コードはコンパイルされ、(MinGW GCCコンパイラを使用して)うまく構築されます。これはCとC++のコードが混在しています。Eclipse CDTインデクサーはae_f32タイプを解決できません

Eclipseで何百という警告が表示されるのは厄介です。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... 

はなぜf32タイプが認識されないでしょう。これは、タイプはサードパーティDSPライブラリコードで定義されている方法ですか?

+1

これは私のために(または少なくともあなたがここに入れたもののおおよそのバージョン)動作します。あなたはそれを[MCVE]にするために編集できますか? (具体的には、ae_f32は動作しますが、ae_f32x2はそうではありませんが、後者はあなたの質問に宣言はありません) –

+0

申し訳ありませんが、例を実行できません... "私の作品"とはどういう意味ですか? Eclipseは 'Type ae_f32を解決できませんでした 'と報告していませんか? ae_f32x2は重要ではなく、ae_f32だけです。 – Danijel

+1

はい、あなたのサンプルをカットして新しいC++プロジェクトに貼り付けると、 'ae_f32'のために*動作します。これは私のカットダウンで使用されたものです:http://pastebin.com/KfmpEsbX –

答えて

0

解決済みです。

.cファイルにCとC++が混在する問題がありました。私はの拡張子を持つソースがあり、ifdefed C++コード(#if defined(__cplusplus)など)、またコンパイラはC++に設定されています。インデクサーはCとしてこれらのファイルを解析します。私がインデクサーログファイル(Project \ C C++ Index \ Create Parser Log File)を生成したとき、私は次のことに気付きました:Language: GNU C

は、それから私は、言語のマッピングを追加しました:C++

からC++

  • C Source fileマップへ

    Settings\C C++ General\Language Mappings

    • C Header fileマップ、私はそれが動作しますが、これを変更したら。

  • 関連する問題