2011-07-11 109 views
1

有沒有辦法設置Visual Studio解決方案參數,因此它只是創建預編譯頭文件而不構建整個解決方案。 具體而言,它是一個巨大的C++解決方案,其中包含許多項目。預編譯頭文件和Visual Studio

謝謝。

+0

我不明白問題 –

+0

對不起,也許我一直困惑。我有VS項目,我想在該項目上運行構建,因此VS只是創建所有cpp文件的預編譯頭文件,而不是構建項目。 –

+0

你想編譯所有的cpp文件到目標文件,但不執行鏈接? – qid

回答

8

只能選擇PCH創源文件(通常stdafx.cpp),並編譯快捷鍵(Ctrl-F7,或右鍵單擊它並選擇「編譯」)

,因爲它更多的信息似乎並不要爲你工作:

在使用預編譯的頭每一個項目,有一個用於創建PCH文件一個源文件,剩下的只有使用 PCH文件。這個源文件通常只包含一個行:

#include "StdAfx.h" 

「的Stdafx.h」是在Visual C默認的預編譯的頭文件名++,它可能是東西給你。如果您自己編譯「StdAfx.cpp」,則會生成名爲「Your_Project_Name.pch」的文件(同樣,這只是默認設置)。您應該在中間目錄中看到它,這是所有obj文件所在的目錄。這是預編譯的頭文件。如果你確實像我說的那樣,選擇'編譯'而不是'編譯',那麼不會編譯其他文件,也不會進行鏈接。

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

+0

我不認爲這會解決我的問題。我只需要創建所有cpp文件的預編譯頭文件,而無需執行構建或鏈接操作。對不起,如果我沒有正確描述我的問題。不管怎麼說,還是要謝謝你。 –

+0

如果這不能解決您的問題,那麼您仍*尚未正確描述您的問題。我在這裏描述的解決方案正是您如何創建預編譯頭,而無需構建或鏈接。 –

+0

非常感謝這個解釋。最後,事實證明,我實際上需要預處理文件,而不是預編譯頭文件。對不起,我很愚蠢。 –

2

如果從項目中右鍵單擊除stdafx.cpp以外的任何Cpp文件,並將「排除」構建設置爲「是」,則只會生成預編譯頭。

您可以通過命令行實現同樣的結果,或者如果你創建一個僅包含您的stdafx.cpp

9

這裏的an article描述好處,以及如何設置它的新項目。 如果你有更大的項目,絕對值得點擊幾次和額外的磁盤空間。

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

該文章沒有提到它,但是您將從不包含stdafx.h的源獲取錯誤。您可以選擇解決此錯誤:您可以添加它,也可以從預編譯過程中排除源代碼。 要排除源文件: - 在解決方案資源管理器中選擇源文件;是的,您可以一次選擇多個, - 右鍵單擊​​突出顯示的源文件, - 從彈出菜單中點擊屬性, - 從頂部組合框中選擇「所有配置」, - 在C-C++配置點擊「預編譯頭文件」, - 在右側選擇「不使用預編譯頭文件」, - 點擊應用, - 點擊確定。

從這裏開始幾秒鐘內即可享受您的新版本(第一個版本需要更長的時間)。

+1

+1「排除預編譯過程中的源代碼」(非常有用!) – nergeia