コンパイラとビルドのプロパティを設定する

IDE では、プロジェクトのビルドに必要なすべての情報が プロパティとして公開されます。 この情報には、アプリケーションの名前、拡張子 (DLL、LIB、EXE)、コンパイラ オプション、リンカー オプション、デバッガーの設定、カスタム ビルド ステップ、その他多くの情報が含まれます。 通常、これらのプロパティを表示および変更するには、"プロパティ ページ" を使用します。 プロパティページにアクセスするには、メインメニューから [プロジェクト名のプロパティ Project] を選択する か、ソリューションエクスプローラーでプロジェクトノードを右クリックして [プロパティ] を選択します。

既定のプロパティ

プロジェクトを作成すると、システムによってさまざまなプロパティの値が割り当てられます。 プロジェクトの種類およびアプリ ウィザードで選んだオプションにより、既定値は若干異なります。 たとえば、ATL プロジェクトには MIDL ファイルに関連するプロパティがありますが、これらのプロパティは基本的なコンソールアプリケーションには存在しません。 既定のプロパティは、プロパティ ページの [全般] ウィンドウに表示されます。

Screenshot of the Property Pages dialog with the Project Defaults properties highlighted.

ビルド構成とターゲット プラットフォームへのプロパティの適用

アプリケーション名などの一部のプロパティは、デバッグビルドまたはリリースビルドであるかどうかにかかわらず、すべてのビルドバリエーションとターゲットプラットフォームに適用されます。 ただし、ほとんどのプロパティは構成に依存します。 正しいコードを生成するには、コンパイラは、プログラムが実行される特定のプラットフォームと、使用する特定のコンパイラオプションの両方を認識している必要があります。 そのため、プロパティを設定するときは、新しい値が適用される構成とプラットフォームに注意することが重要です。 デバッグ用の Win32 ビルドにのみ適用するか、またはデバッグ ARM64 とデバッグ x64 にも適用する必要がありますか。 たとえば、" 最適化 " プロパティは、既定では、リリース構成では [速度を最大にする] (/O2) に設定されていますが、デバッグ構成では無効になっています。

プロパティ値が適用される構成とプラットフォームをいつでも表示して変更することができます。 次の図は、上部にある [構成] と [プラットフォーム] の情報を制御するプロパティページを示しています。 最適化プロパティがここで設定されている場合は、赤い矢印に示されているように、デバッグ Win32 ビルド、現在アクティブな構成にのみ適用されます。

Screenshot of the Property Pages dialog showing property values for the currently active configuration.

次の図も同じプロジェクトのプロパティ ページですが、構成がリリースに変更されています。 [最適化] プロパティの値が異なることに注意してください。 また、アクティブな構成はまだデバッグであることにも注意してください。 ここでは、任意の構成のプロパティを設定することができます。アクティブである必要はありません。

Screenshot of the Property Pages dialog showing property values for the release configuration.

ターゲット プラットフォーム

ターゲットプラットフォーム とは、実行可能ファイルが実行されるデバイスとオペレーティングシステムの種類を指します。 複数のプラットフォームを対象としてプロジェクトをビルドすることができます。 C++ プロジェクトで使用できるターゲットプラットフォームは、プロジェクトの種類によって異なります。 これらには、Win32、x64、ARM、ARM64、Android、iOS などが含まれますが、これらに限定されるわけではありません。 構成マネージャーで表示される x86 ターゲット プラットフォームは、ネイティブ C++ プロジェクトの Win32 と同じです。 Win32 とは 32 ビットの Windows を意味し、x64 は 64 ビットの Windows を意味します。 これら 2 つのプラットフォームについて詳しくは、「32 ビット アプリケーションの実行」をご覧ください。

Configuration Managerに表示される可能性のあるAny CPUターゲットプラットフォームの値は、ネイティブ C++ プロジェクトには影響しません。 これは、C++/CLI およびその他の .NET プロジェクトの種類にのみ関連します。 詳細については、「 (CLR イメージの種類を指定する)」を参照してください。

デバッグ ビルド用のプロパティの設定の詳細については、以下を参照してください。

C++ のコンパイラとリンカーのオプション

C++ のコンパイラ オプションとリンカー オプションは、左側のウィンドウの [構成プロパティ] の下にある [C/C++] ノードと [リンカー] ノードの下に配置されています。 これらのオプションは、コンパイラに渡されるコマンドラインオプションに直接変換されます。 特定のオプションに関するドキュメントを参照するには、中央のウィンドウでオプションを選択し、F1 を押します。 または、 MSVC コンパイラオプションMSVC リンカーオプションのすべてのオプションに関するドキュメントを参照することもできます。

[プロパティ ページ] ダイアログ ボックスには、現在のプロジェクトに適用するプロパティ ページのみが表示されます。 たとえば、プロジェクトにファイルがない場合、[ .idl MIDL] プロパティページは表示されません。 各プロパティページの設定の詳細については、「 プロパティページ (C++)」を参照してください。

ディレクトリとパスの値

MSBuild では、マクロと呼ばれるインクルードディレクトリやパスなど、特定の文字列値に対してコンパイル時の定数を使用できます。 マクロは、Visual Studio または MSBuild システムで定義された値、またはユーザー定義の値を参照できます。 マクロ $(macro-name) は、やのようになり %(item-macro-name) ます。 プロパティページで公開され、 プロパティエディターを使用して参照したり変更したりできます。 ディレクトリパスなどのハードコーディングされた値ではなく、マクロを使用します。 マクロを使用すると、コンピューター間および Visual Studio のバージョン間でプロパティの設定を共有しやすくなります。 また、プロジェクト設定が プロパティの継承に正しく参加するようにすることもできます。

次の図は、Visual Studio C++ プロジェクトのプロパティ ページを示しています。 左側のウィンドウでは、[ VC++ ディレクトリ] の規則が選択されており、右側のウィンドウには、その規則に関連付けられているプロパティが一覧表示されます。 多くの場合、プロパティ値は次のようなマクロです $(VC_SourcePath)

Screenshot of the Property Pages dialog showing the VC project directories.

プロパティエディターを使用して、使用可能なすべてのマクロの値を表示できます。

定義済みマクロ

  • グローバルマクロ:
    グローバルマクロは、プロジェクト構成内のすべての項目に適用されます。 グローバルマクロには、という構文があり $(name) ます。 Visual Studio インストールのルート ディレクトリを格納するグローバル マクロの例は $(VCInstallDir) です。 グローバル マクロは、MSBuild の PropertyGroup に対応します。

  • 項目マクロ
    項目マクロには構文があり %(name) ます。 ファイルの場合、項目マクロはそのファイルにのみ適用さ — れます。たとえば、を使用して、 %(AdditionalIncludeDirectories) 特定のファイルにのみ適用されるインクルードディレクトリを指定できます。 この種類の項目マクロは、MSBuild の ItemGroup のメタデータに対応します。 プロジェクト構成のコンテキストで使用される場合、項目マクロは、特定の種類のすべてのファイルに適用されます。 たとえば、C/c + + プリプロセッサ定義 の構成プロパティは、 プロジェクト内のすべての .cpp ファイルに適用される項目マクロを受け取ることができます。 この種類の項目マクロは、MSBuild の ItemDefinitionGroup のメタデータに対応します。 詳細については、「項目定義」を参照してください。

ユーザー定義マクロ

プロジェクトのビルドで変数として使う "ユーザー定義マクロ" を作成できます。 たとえば、ユーザー定義のマクロを作成して、カスタム ビルド ステップまたはカスタム ビルド ツールに値を渡すことができます。 ユーザー定義マクロは、名前と値のペアです。 プロジェクト ファイルでは、$(name) という表記を使用して、その値にアクセスします。

ユーザー定義マクロは、プロパティ シートに格納されます。 プロジェクトにプロパティシートがまだ含まれていない場合はVisual Studio プロジェクト設定の共有または再利用に関する手順に従って作成できます。

ユーザー定義マクロを作成するには

  1. プロパティ マネージャー ウィンドウを開きます (メニューバーで [表示 ] を選択します。他の Windowsプロパティマネージャーをプロパティマネージャーまたは表示します。) プロパティシートのショートカットメニューを開き (名前の末尾がに .user なります)、[ .user] を選択します。 そのプロパティ シートの [プロパティ ページ] ダイアログ ボックスが開きます。

  2. ダイアログ ボックスの左ウィンドウで、 [ユーザー マクロ] を選びます。 右ウィンドウで [マクロの追加] ボタンを選んで、 [ユーザー マクロの追加] ダイアログ ボックスを開きます。

  3. ダイアログ ボックスで、マクロの名前と値を指定します。 必要に応じて、 [ビルド環境でこのマクロを環境変数として設定します] チェック ボックスをオンにします。

プロパティ エディター

プロパティ エディターを使用して、特定の文字列プロパティを変更し、値としてマクロを選択できます。 プロパティ エディターにアクセスするには、プロパティ ページのプロパティを選択し、右側のドロップダウン矢印をクリックします。 ドロップダウンリストに Edit >が含まれている場合は、その一覧を選択して、そのプロパティのプロパティエディターを表示できます。

A property drop-down control is used to access the Property Editor.

プロパティ エディターで [マクロ] を選んで、使用できるマクロとその現在の値を見ることができます。 次の図は、 [マクロ] を選んだ後の [追加のインクルード ディレクトリ] プロパティのプロパティ エディターを示したものです。 [ 親またはプロジェクトの既定値から継承 ] チェックボックスがオンになっていて、新しい値を追加すると、現在継承されているすべての値に追加されます。 チェック ボックスをオフにすると、継承された値が新しい値に置き換えられます。 ほとんどの場合、チェック ボックスはオンのままにします。

The Property Editor dialog for the Include Directories property.

既定のディレクトリ セットにインクルード ディレクトリを追加する

プロジェクトにインクルードディレクトリを追加する場合は、すべての既定のディレクトリをオーバーライドしないことが重要です。 ディレクトリを追加する正しい方法は、"" などの新しいパスを追加 C:\MyNewIncludeDir\ してから、その $(IncludePath) マクロをプロパティ値に追加することです。

すべてのプロパティをすばやく参照および検索するには

[ すべてのオプション ] プロパティページ ([ 構成プロパティ] の下) [ プロパティページ ] ダイアログボックスの [C/c + +] ノード) を使用すると、現在のコンテキストで使用できるプロパティを簡単に参照および検索することができます。 これには特別な検索ボックスと単純な構文が用意されており、結果をフィルター処理できます。

プレフィックスなし:
プロパティ名のみで検索 (大文字と小文字を区別しない部分文字列)。

' / ' または ' - ':
コンパイラ スイッチのみで検索 (大文字と小文字を区別しないプレフィックス)。

v:
値のみで検索 (大文字と小文字を区別しない部分文字列)。

ビルドの環境変数を設定する

MSVC コンパイラ (cl.exe) は、特定の環境変数 (具体的には、、、および) を認識し LIBLIBPATHPATHINCLUDE ます。 IDE を使用してビルドする場合は、[ VC++ ディレクトリ] プロパティページで設定されているプロパティを使用して、これらの環境変数を設定します。 型、型、および型の LIBLIBPATHINCLUDE 値が既に設定されている場合 (開発者コマンドプロンプトなど)、対応する MSBuild プロパティの値に置き換えられます。 その後、ビルドによって、VC++ ディレクトリの実行可能ファイルのディレクトリプロパティの値がに付加され PATH ます。 ユーザー定義マクロを作成して [ビルド環境でこのマクロを環境変数として設定します] チェック ボックスをオンにすると、ユーザー定義の環境変数を設定できます。

デバッグ セッションの環境変数を設定する

プロジェクトの [プロパティ ページ] ダイアログ ボックスの左ウィンドウで [構成プロパティ] を展開し、 [デバッグ] を選びます。

右ウィンドウで [環境] または [マージ環境] のプロジェクト設定を変更して、 [OK] をクリックします。

このセクションの内容

Visual Studio プロジェクトの設定を共有または再利用する
.props共有または再利用が可能なカスタムビルド設定を使用してファイルを作成する方法。

プロジェクト プロパティの継承
.props.targets.vcxproj ビルドプロセスにおける、、ファイル、および環境変数の評価順序について説明します。

プロジェクト ファイルを変更しないでプロパティとターゲットを変更する
プロジェクト ファイルを変更せずに一時的なビルド設定を作成する方法。

関連項目

Visual Studio プロジェクト - C++
および .props ファイル構造
プロパティ ページの XML ファイル