2013-10-07 145 views
13

一些我的頭文件沒有包含,所以我在Visual Studio 2010中收到此消息:如何停止智能感知PCH警告?

IntelliSense: PCH warning: cannot find a suitable header stop location. An intellisense PCH file was not generated. 

如果我加一個頭,如:

#include <iostream> 

消失。如何在不添加(可能未使用)的情況下顯示此錯誤包括>

回答

9

添加.cpp文件時,它會繼承項目的PCH設置。 問題的更詳細的解釋here

解決方案:

  1. 在文件開始添加#pragma once

它會導致源文件被包括僅在單個編譯一次,因此編譯器將滿足,將不要求額外的#include

  • 設置你的項目不使用預編譯頭文件
  • 禁用已添加的那一個cpp文件的PCH用法,這將清除智能感知和編譯器警告/錯誤。
  • 注意!我包括第二和第三,因爲有人說這有助於它,但它只有第一個解決我的情況。

    +0

    我甚至不記得這個錯誤來自哪個項目。我會在VS2010中打開每一個,直到我收到這個錯誤並且可以嘗試'#pragma once'。 – NobleUplift

    +0

    只帶了我半年,但我終於接受了你的答案! :D – NobleUplift

    +1

    你能解釋一下#pragma指令嗎?!爲什麼它解決了這個問題? –

    4

    我想的問題是,您在您的項目預編譯頭(默認爲「stdafx.h中」),並正確地解決,你應該在你的頭/源文件的開頭添加

    #include "stdafx.h" 
    

    問題。

    評論如果我錯了,因爲這是我的第一個答案,英文不是我的母語。

    +0

    嗯,我認爲他現在應該已經在3年多前解決了他的問題。 ;) – Eiko

    +0

    我寫這個asnwer爲遇到此問題的其他用戶知道爲什麼會出現此問題。 F.E.我遇到了同樣的問題,我訪問過這個問題看到了一個解決問題的解決方案,但我不知道它爲什麼會這樣做,於是我思考並編寫了另一個解決問題的答案,並解釋了它如何解決問題。 – Serid