2017-07-08 4 views
1

<cub/cub.cuh>ヘッダーファイルを含めると、Visual StudioのIntelliSenseは何千ものエラーを報告します。CUBヘッダーを含めるとVisual Studio Intellisenseの多くのエラーが発生する

添付のスクリーンショットからわかるように、アプリケーションは空のmain()関数とinclude行で構成されています。

私はプロジェクトプロパティに追加のインクルードディレクトリと追加のライブラリディレクトリを定義しました。私は他に何も変えていない。

私のセットアップは、visual studio community 2015,cuda 8.0.61およびcub 1.7.0のライブラリで構成されています。

このエラーを修正するための対策はありますか?

IntelliSense behavior

+3

cubはcudaを使用し、cudaはintellisenseと互換性がなく、テンプレートライブラリであるため、単一のcubedヘッダーファイルには多くのコードが含まれます。インテリセンスのエラーとその対処方法について議論しているSO CUDAのタグには、ここではあらゆる種類の質問があります。また、VS2015にこれらのタイプのエラーを報告させないようにすることもできます。 –

+0

はい、最初の草案を読んだ後、あなたの質問に編集しました。私は最初のコメントからその声明を削除しました。 –

+0

@RobertCrovella VS2015にこれらのエラーを報告しないようにするにはどうすればよいですか? IntelliSenseの電源を切ると思いますか? – cukier9a7b5

答えて

1

私は正しい方向に私を指しているため、ロバートCrovellaに感謝したいと思います。

恒久的な解決策:

#ifndef __INTELLISENSE__ 

#include <cub/cub.cuh> 

// And other troublesome libraries or code-blocks.... 

#endif 

のVisual Studio自体ではなくコンパイル時に、ファイルを解析すると、Visual Studioの__INTELLISENSE__マクロがのみ定義されます。したがって、上記のコードブロック内のものはIntelliSenseアルゴリズムでチェックされません。


回避策:(この問題を解決するために、私の第一の試みは、無視することができます)。

ステップ#1:
のVisual StudioのError Listウィンドウの変更オプションで Build + IntelliSense

Build Onlyへのステップ#2
Visual Studioでに行く: Tools > Options > Text Editor > C/C++ > AdvancedTrue

Falseから Disable Error Reportingを変更

説明:
これにより、IntelliSenseのエラーチェック機能が無効になり、拡張機能によって問題が解決されます。この部分的な解決策は私にコンパイル(ビルド)出力のみに依存させることになりますが、それは問題ではありません。

私の言ったように、この解決策は、の回避策に似ています。深刻なまたは重大なペナルティなしでIntelliSenseの機能ではなく、恒久的な修正。 しかし、それはうまく動作します

短所:私の現在のプロジェクトで

  1. は、​​ラッパーな機能があり、それらの機能は時々オートコンプリートによって検出されていません。
  2. 合計エラー数がIntelliSenseの制限に達した場合、IntelliSenseは機能しなくなります。(編集:「重大なまたは重大なペナルティなしで」ウィンドウからまっすぐに行きました...)。
関連する問題