2017-03-21 8 views
1

以下のvimコンプリータ機能が見つかりませんでした。 VIMでvimが見つかりません。#include suggestions

use of undeclared identifier 'uint8_t' 

警告(私はYouCompleteMeを使用)して:あなたがで終わる何

int main(){ 
    uint8_t a = 0, b = 5; 
    ... 
    return 0; 
} 

されています。あなたは、コードを書いて、あなたがこのタイプの例を定義し、適切なヘッダファイルをインクルードする前に型を指定すると言いますコンパイルエラー:

error: unknown type name ‘uint8_t’ 

私が探している何があなたに

ような何かを示唆してコンプリである
use of undeclared identifier 'uint8_t' did you include stdint.h? 

これまでこのような機能が存在しない場合は、その理由は何ですか?

+1

*「このような機能がこれまでに存在しなかった場合、その理由は何ですか?」*この機能はどのような問題を解決しますか?識別子の宣言がない場合は、ヘッダーが見つからないことがわかります。これはプログラマーにとっては問題ではありません。 – user694733

+0

vimの代わりにYouCompleteMeの文献を調べる必要があるでしょう。 – cup

+0

エディタはどのようにすべてのインクルードファイルを解析せずに知っていますか?いくつかの型がコンパイラに組み込まれているという事実を追加する。コンパイル時にエラーが表示される問題は何ですか? – Olaf

答えて

1

small feature私は、ctagsデータベースがカーソルの下にあるシンボルに関連するインクルードステートメントを追加できることを前提としています。今度はfeaturelh-devに抽出しました。

標準ライブラリのいくつかのシンボルがどこから来たのかを知っているassociative mapを定義しておいてください。これまではC++クラスのスニペットから継承した型のインクルードステートメントを自動的に追加するためにのみ使用します。確かに、欠落しているインクルードを修正するためにも使うことができるということです(誰もが標準のライブラリをctagsで解析したいわけではありません)。

ただし、私のスクリプトは、欠落しているインクルードを自動的に検出して、それらを追加しようとしません。実際のC++プロジェクトでは複雑すぎます。

1

あなたのコンパイラの-Iオプションリストへのディレクトリパスを追加する必要がある、またはあなたがlocate stdint.hはできる、含まれるようにウィッヒパスがわからない場合はVIMのパスオプション変数

:help 'path 

にディレクトリ・パスを追加することができ良いスタートです。

関連Link

+0

'stdint.h'はC99標準ヘッダーです。私たちは '-I'で何もするつもりはない。 –

関連する問題