Visual Studio 2010工程目錄下的ipch文件夾和.sdf文件


使用VS2010建立C++解決方案時,會生成SolutionName.sdf和一個叫做ipch的文件夾,這兩個文件再加上*.pch等文件使得工程變得非常的龐大,一個簡單的程序都會占用幾十M的硬盤容量,可惜畢竟硬盤還沒有廉價到免費的地步。

那么,該怎么解決呢?其實可以關閉它。方法:

Tools->Options->Text Editor->C/C++->Advanced->Disable Database,設置為True

但是這樣的辦法會產生另外的一些問題,可能會導致其他的一些功能不能使用。另外一種解決方法是:

Tools->Options->Text Editor->C/C++->Advanced,在 Fallback Location 的屬性組中,將"Always Use Fallback Location"設置為 true,將"Do Not Warn If Fallback Location Used" 設置為 true ,然后刪除解決方案目錄下的 sdf 文件和 ipch 目錄,再次打開解決方案,發現這些煩人的東西已經不見了。

那么那些文件放置到那里了呢?看 "Fallback Location" 屬性說明:這是存儲瀏覽信息數據庫和 IntelliSense 文件的第二個位置,如果不指定則放置到臨時目錄中;到臨時目錄一看,里面有一個 VC++ 的目錄,都在那個目錄里面呢。

可以在 "Fallback Location" 屬性中,設置一個固定的路徑來存儲這些文件,比如D:\VS2010Temp,這樣也比較好管理這些龐大的臃腫的文件,可以定期清理掉它們,釋放出硬盤空間!

 

       昨天上班時突然碰到一個很奇怪的問題,我將一個工程目錄剪貼至其他目錄下后,用vs 2010再次打開該工程時, 右鍵菜單中的“go to definition”無法正確的工作。例如在一個使用函數getExtensionMode的地方按下快捷鍵F12鍵, 彈出包含如下的Message Box:

但是明明那個函數的定義就在那個源文件里面。同樣的問題也出現在同一個solution的其他文件中,這樣造成查看代碼很不方便,嚴重影響工作效率。

通過網上一番搜索之后,終於找到了出現上面情況的原因,工程目錄中的ipch文件夾和.sdf文件不能正常工作。解決方法:關閉打開的工程,接着把工程目錄下的ipch目錄下所有文件和所有.sdf文件都刪除,然后用VS 2010重新打開工程,讓vs 2010重新生成那些文件,這樣就可以使用F12快捷鍵了。

其實ipch和sdf分別是Visual Studio 2010用來保存預編譯頭文件和Intellisense信息的地方,對工程本身的功能沒有影響,只是用來加快編譯和便於代碼提示。但是這部分文件通常都會占用比較龐大的磁盤空間,所以在拷貝或轉移工程項目時可以把這部分文件先刪掉。

有一種方法可以讓這部分輔助文件不包含在工程項目目錄下,減小工程項目的占用的磁盤空間,但同時又能利用這些文件帶來的便利,那就是通過設置把他們統統放到一個獨立於工程目錄的fallback location中。在Visual Studio 2010里進入如下設置:進入“Tools > Options”,選擇“Text Editor > C/C++ > Advanced”,然后找到“Fallback Location”。然后把“Always use Fallback Location”和“Do Not Warn if Fallback Location”設置成“True”,並且在“Fallback Location”中設置放置該類型文件的路徑,如下圖:

這樣所有工程項目的預編譯文件和code Intellisense信息就都放在c:\vs 2010 Intellisense\文件夾下了。

想了解更多的關於.sdf文件的信息,可以參考 http://blogs.msdn.com/b/vcblog/archive/2009/05/27/rebuilding-intellisense.aspx


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM