簡體   English   中英

我可以使用#include“pch.h”而不是#include“stdafx.h”作為Visual Studio C ++中的預編譯頭嗎?

[英]Can I use #include “pch.h” instead of #include “stdafx.h” as my precompile header in Visual Studio C++?

這是我第一次使用C ++並正確地進行編碼。 我正在關注learncpp.com上的C ++教程,我正在使用Visual Studio 2017 ...

在教程中,他們從一些簡單的“Hello,world!”開始。 代碼和代碼頂部#include "stdafx.h"以及#include <iostream> 當我自己復制此代碼並嘗試構建它時,我收到錯誤:

C1010:查找預編譯頭時意外結束文件。 您是否忘記在源代碼中添加#include“pch.h”?

在查看我的解決方案資源管理器時,我注意到在頭文件和源文件選項卡的教程中,他們有名為“stdafx.h”和“stdafx.cpp”的文件,但對我來說這些文件名為“pch.h”和“pch”的.cpp”。

所以我嘗試將#include "stdafx.h"重命名為#include "pch.h" ,代碼構建完美並執行#include "pch.h" 那么我應該堅持使用#include "pch.h"代替我的其余代碼,還是這是某種問題?

謝謝!

多年來,默認的預編譯頭文件名是stdafx.h。 最近,在VS 2017中,他們將項目向導創建的默認名稱更改為pch.h. 我不知道為什么,但他們做到了。

您可以在“配置屬性” - >“C / C ++” - >“預編譯標題”下的“項目屬性”中調整預編譯頭文件的名稱。 您也可以在那里啟用或禁用它們。 您甚至可以基於每個文件來定義它。 您甚至可以在一個項目中配置多個不同的預編譯頭文件。

所以對你來說具體問題:在你的教程中用pch.h替換stdafx.h不會有任何問題。 該教程可能只是較舊,尚未更新。

嘗試將“#include pch.h”移動到文件的最頂部(在任何其他標頭之前)。

默認情況下,某些編譯器不會在預編譯的頭文件之前編譯內容。 但是可以更改此設置。

在learncpp.com教程中,教師建議我們在使用Visual Studio上的Windows桌面向導選項創建新的C ++項目時關閉“預編譯頭”附加選項。 在我們尚未介紹Header文件時,這樣做是個好主意。

但是,pch.h似乎是“新的”stdafx.h,所以不是你可以使用前者而不是后者,但是你必須這樣做,至少在選擇“Precompiled Header”選項時。

暫無
暫無

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

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