/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 で明示的にファイルに適用するには、ソリューション エクスプローラーでファイルを選択します。 右クリックしてコンテキスト メニューを開き、 Properties を選択して [プロパティ ページ] ダイアログを開きます。

  2. Configuration ドロップダウンを All Configurations に設定します。 [ Platform ドロップダウンを All Platforms に設定します。

  3. Configuration Properties>C/C++>Advanced プロパティ ページを開きます。

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

関連項目

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