簡體   English   中英

預編譯 header 和 Visual Studio

[英]Precompiled header and Visual Studio

有沒有辦法設置 Visual Studio 解決方案參數,以便它只創建預編譯的標頭而不構建整個解決方案。 具體來說,它是一個龐大的 c++ 解決方案,本身包含許多項目。

謝謝你。

是一篇描述好處以及如何設置它的文章。 如果您有更大的項目,那么點擊幾下和額外的磁盤空間絕對值得。

文章說您需要將 stdafx.h 添加到所有源和標頭; 這是不正確的。 添加到源中就足夠了 - 確保它是第一行,盡管它之前的所有內容都將被忽略。

這篇文章沒有提到它,但是你會從不包含 stdafx.h 的來源中得到錯誤。 您可以選擇解決此錯誤:您要么添加它,要么從預編譯過程中排除源。 要排除源文件:

  • 解決方案資源管理器中的 select 源文件; 是的,您可以同時使用更多 select,
  • 右鍵單擊突出顯示的源文件,
  • 從彈出菜單中單擊屬性,
  • select 頂部組合框中的“所有配置”,
  • 在 C-C++ 配置下單擊“預編譯頭文件”,
  • 在右側 select '不使用預編譯頭文件',
  • 點擊申請,
  • 點擊確定。

從這里開始在幾秒鍾內享受您的新構建(第一次構建需要更長的時間)。

只有 select pch creator 源文件(通常是 stdafx.cpp),然后編譯它(Ctrl-F7,或右鍵單擊它並 select '編譯')

更多信息,因為它似乎不適合你:

在每個使用預編譯 header 的項目中,都有一個源文件用於創建 pch 文件,而 rest 僅使用pch 文件。 這個源文件通常只包含一行:

#include "StdAfx.h"

“Stdafx.h”是 Visual C++ 中默認的預編譯 header 文件名,它可能是你的其他東西。 如果您自己編譯“StdAfx.cpp”,則會生成一個名為“Your_Project_Name.pch”的文件(同樣,這只是默認設置)。 您應該在中間目錄中看到它,與所有 obj 文件所在的目錄相同。 這是預編譯的 header。 如果你像我說的那樣選擇了“編譯”而不是“構建”,那么不會編譯其他文件,也不會發生鏈接。

如果那仍然不能解決您的問題,那么我不知道您在問什么。

如果您在項目中右鍵單擊除 stdafx.cpp 之外的任何 Cpp 文件並將“從構建中排除”設置為“是”,它將僅生成預編譯的 header。

您可以通過命令行獲得相同的結果,或者如果您創建僅包含您的 stdafx.cpp 的新項目

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM