/exportHeader (ヘッダー ユニットの作成)

入力引数によって指定されたヘッダー ユニットを作成するようにコンパイラに指示します。 コンパイラは、ヘッダー ユニットを IFC (.ifc) ファイルとして生成します。

構文

/exportHeader /headerName:angle header-name
/exportHeader /headerName:quote header-name
/exportHeader full path to header file

引数

/exportHeader の引数は、エクスポートするヘッダー ファイルの名前 (header-name) を指定する、/headerName コマンドライン オプションです。

解説

/exportHeader は、Visual Studio 2019 バージョン 16.10 以降で使用できます。

コンパイラ オプション /exportHeader を使用するには、/std:c++20 以降のコンパイラ オプション (/std:c++latest など) を有効にする必要があります。

1 つの /exportHeader コンパイラ オプションで、ビルドに必要な数の header-name 引数を指定できます。 個別に指定する必要はありません。

このオプションが使用された場合、コンパイラは新しいプリプロセッサを暗黙的に有効にします。 つまり、コマンド ラインで何らかの形式の /exportHeader が使用されている場合には、コンパイラによって /Zc:preprocessor がコマンド ラインに追加されます。 暗黙的な /Zc:preprocessor をオプト アウトするには、次を使用します: /Zc:preprocessor-

既定では、ヘッダー ユニットがコンパイルされる際、コンパイラはオブジェクト ファイルを生成しません。 オブジェクト ファイルを生成するには、/Fo コンパイラ オプションを指定します。 詳しくは、「/Fo/Fo (オブジェクト ファイル名)」をご覧ください。

補完的なオプション /showResolvedHeader を使用すると便利な場合があります。 /showResolvedHeader オプションは、header-name 引数の解決後のファイルへの絶対パスを出力します。

/exportHeader では、/MP が使用されている場合でも、一度に複数の入力を処理できます。 コンパイルごとに個別の .ifc ファイルを作成するには、/ifcOutput <directory> を使用することをお勧めします。

<vector> などのヘッダー ユニットをビルドする場合は、次のようになります。

cl . . . /std:c++latest /exportHeader /headerName:angle vector

"utils/util.h" などのローカル プロジェクト ヘッダーをビルドする場合は、次のようになります。

cl . . . /std:c++latest /exportHeader /headerName:quote util/util.h

Visual Studio 開発環境でこのコンパイラ オプションを設定するには

通常、ヘッダー ファイルに別の拡張機能を使用しない限り、Visual Studio 開発環境ではこのオプションを設定しないでください。 既定では、ビルド システムは、拡張機能を持つ、または拡張子のないコンパイル済みファイルにこのオプションを .h 適用します。

  1. IDE で/exportHeader明示的にファイルにオプションを適用するには、ソリューション エクスプローラーファイルを選択します。 右クリックしてコンテキスト メニューを開き、[プロパティ] を選択して [プロパティ ページ] ダイアログを開きます。

  2. [構成] ドロップダウンを [すべての構成] に設定します。 [プラットフォーム] ドロップダウンを [すべてのプラットフォーム] に設定します

  3. [構成プロパティ>C/C++詳細設定] プロパティ ページを>開きます。

  4. ドロップダウン コントロールを使用して、C++ ヘッダー ユニット (/exportHeader) としてコンパイルするように Compile As プロパティを変更します。 [OK] または [適用] を選択して、変更内容を保存します。

関連項目

/headerName (指定されたヘッダーからのヘッダー ユニットのビルド)
/headerUnit (ヘッダー ユニット IFC の使用)
/reference (名前付きモジュール IFC の使用)
/translateInclude (インクルード ディレクティブをインポート ディレクティブに変換する)