1. ホーム
  2. c++

[解決済み] Visual Studio 2012の新しいC++プロジェクトで自動的に作成されるstdafx.cppファイルとは何ですか?

2022-02-08 05:31:30

質問

stdafx.hはプリコンパイルされたヘッダーファイルで、ビジュアルスタジオでコンパイル時間を短縮するために使用されると聞いています。ビジュアルスタジオ2012でc++のプロジェクトを作成すると、stdafx.cppも存在します。stdafx.hとstdafx.cppの関係について、どなたか教えていただけませんか?

解決方法を教えてください。

プリコンパイルされたヘッダは、プロジェクト内の .cpp ファイルのコンパイルを大幅に高速化することができます。 慣習として、プリコンパイルされたいすべての.hファイルを#includeするのはstdafx.hです。 プロジェクトテンプレートでは stdafx.h が選ばれています。

しかし、それが機能する前に 一つ .cpp ファイルは stdafx.h を #includes しており、最初にコンパイルされます。 プロジェクト内の他のすべての.cppファイルより先に。 これが完了すると、コンパイラーは作成された .pch ファイルを使用して、他のすべての .cpp ファイルをすばやくコンパイルできるようになり、ヘッダーを実際に #include する必要がなくなります。

Stdafx.cppはその1つの.cppファイルです。 他のすべての.cppファイルとは異なる設定をしており、ビルドされます。 with /Yc . プリコンパイルされたヘッダーファイルを作成する"オプションです。


UPDATE: 28年ぶりにMicrosoftがVS2019で"There used to be an std framework but nobody ever saw it"の慣習を破りました。 そのため、"STDフレームワーク "と呼ばれるようになりました。 名前が変わっただけで、仕組みは同じです。