次の方法で共有


/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 コンパイラ オプションで、ビルドに必要な数のヘッダー名引数を指定できます。 個別に指定する必要はありません。

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

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

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

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

例示

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

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

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

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

こちらも参照ください

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