2017-07-08 84 views
1

每當我包含<cub/cub.cuh>頭文件時,Visual Studio的智能感知都會報告數千個錯誤。包括CUB頭文件會觸發許多Visual Studio智能感知錯誤

正如您在附件截圖中看到的,應用程序由空行main()函數和include行組成。

我在項目屬性中定義了額外的包含目錄和額外的庫目錄。我沒有做任何其他改變。

我的設置包含visual studio community 2015,cuda 8.0.61cub 1.7.0庫。

有什麼我可以做的,以解決這個錯誤?

IntelliSense behavior

+3

Cub使用cuda,cuda與intellisense不兼容,並且一個單獨的頭文件會包含很多代碼,因爲它是一個模板庫。在討論intellisense錯誤以及可能對它們做什麼的SO'cuda'標籤上有各種各樣的問題。或者,您可以讓VS2015不報告這些類型的錯誤。 –

+0

是的,您在閱讀您的初稿並回復後,將其編輯到您的問題中。我從我的第一條評論中刪除了該聲明。 –

+0

@RobertCrovella如何強制VS2015不報告這些錯誤?你想關閉智能感知嗎? – cukier9a7b5

回答

1

我要感謝羅伯特Crovella指着我在正確的方向。

永久的解決辦法:在Visual Studio中本身解析文件,而不是在編譯期間

#ifndef __INTELLISENSE__ 

#include <cub/cub.cuh> 

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

#endif 

的Visual Studio的__INTELLISENSE__宏只被定義。因此,上述代碼塊內的任何內容都不會由IntelliSense算法檢查。


解決方法:(我的第一嘗試解決這個問題,可以忽略不計)。

第1步:
在Visual Studio的Error List窗口的變化選項Build + IntelliSenseBuild Only

步驟#2
在Visual Studio中去:Tools > Options > Text Editor > C/C++ > AdvancedFalse改變Disable Error ReportingTrue

說明:
這將關閉智能感知錯誤檢查功能,並通過擴展將解決我的問題。這部分解決方案將迫使我只依賴編譯器(構建)輸出,但這不是問題。

就像我說過的,這個解決方案更像是一個圍繞的解決方法,在智能感知功能中沒有任何嚴重或關鍵的損失,而不是一個永久修復。 但它工作正常

缺點:

    在我的當前項目
  1. ,但是也有一些​​包裝的功能,這些功能往往不被自動完成檢測。
  2. 此外,如果總錯誤計數達到智能感知限制,智能感知將停止工作。(編輯:「沒有任何嚴重或嚴重的處罰」直接走出了窗戶......)。