[英]Why do i have to #include “stdafx.h” in Microsoft visual studio c++ applications?
[英]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.