チュートリアル: Visual Studio で MSBuild でパッケージをインストールして使用する

このチュートリアルでは、MSBuild、vcpkg、Visual Studio で fmt ライブラリを使用する C++ "Hello World" プログラムを作成する方法について説明します。 依存関係のインストール、プロジェクトの構成、ビルド、単純なアプリケーションの実行を行います。

前提条件

1 - vcpkg を設定する

  1. リポジトリの複製

    最初の手順では、GitHub から vcpkg リポジトリを複製します。 リポジトリには、vcpkg 実行可能ファイルを取得するスクリプトと、vcpkg コミュニティによって管理されるキュレーションされたオープンソース ライブラリのレジストリが含まれています。 これを行うには、次を実行します。

    git clone https://github.com/microsoft/vcpkg.git
    

    vcpkg キュレーション レジストリは、2,000 を超えるオープンソース ライブラリのセットです。 これらのライブラリは、vcpkg の継続的インテグレーション パイプラインによって検証され、連携しています。 vcpkg リポジトリにはこれらのライブラリのソース コードは含まれていませんが、レシピとメタデータを保持して、それらをビルドしてシステムにインストールします。

  2. ブートストラップ スクリプトを実行する

    vcpkg リポジトリを複製したら、 vcpkg ディレクトリに移動し、ブートストラップ スクリプトを実行します。

    cd vcpkg && bootstrap-vcpkg.bat
    
    cd vcpkg; .\bootstrap-vcpkg.bat
    
    cd vcpkg && ./bootstrap-vcpkg.sh
    

    ブートストラップ スクリプトは前提条件チェックを実行し、vcpkg 実行可能ファイルをダウンロードします。

    これで完了です。 vcpkg がセットアップされ、使用する準備が整いました。

  1. Visual Studio MSBuild との統合

次の手順では、MSBuild で見つけられるように、vcpkg のユーザー全体のインスタンスを設定します。

.\vcpkg.exe integrate install

これにより、以下が出力されます。

All MSBuild C++ projects can now #include any installed libraries. Linking will be handled automatically. Installing new libraries will make them instantly available.

2 - Visual Studio プロジェクトを設定する

  1. Visual Studio プロジェクトの作成

    • "コンソール アプリケーション" テンプレートを使用して Visual Studio で新しいプロジェクトを作成する

    新しい C++ Windows コンソール アプリケーションを作成する

    Visual Studio で新しい C++ Windows コンソール アプリケーションを作成する方法を示す Visual Studio UI のスクリーンショット

    • プロジェクトに "helloworld" という名前を付けます
    • [ソリューションとプロジェクトを同じディレクトリに配置する] チェック ボックスをオンにします。
    • [作成] ボタンをクリックします

    MSBuild C++ プロジェクトの名前付け

    MSBuild C++ プロジェクトに名前を付け、[作成] ボタンをクリックするための Visual Studio UI のスクリーンショット。

  2. VCPKG_ROOT 環境変数を構成します。

    Visual Studio で組み込みの開発者 PowerShell ウィンドウを開きます。

    組み込みの開発者 PowerShell を開く

    組み込みの PowerShell 開発者ウィンドウの Visual Studio UI のスクリーンショット

    次のコマンドを実行します。

    $env:VCPKG_ROOT = "C:\path\to\vcpkg"
    $env:PATH = "$env:VCPKG_ROOT;$env:PATH"
    

    環境変数の設定

    VCPKG_ROOTを設定して PATH に追加する方法を示す、組み込みの PowerShell 開発者ウィンドウの Visual Studio UI のスクリーンショット。

    Note

    この方法で環境変数を設定すると、現在のターミナル セッションにのみ影響します。 これらの変更をすべてのセッションで永続的にするには、[Windows システム環境変数] パネルで設定します。

    Visual Studio で開発者コマンド プロンプトを開きます。

    Visual Studio 開発者コマンド プロンプトを開きます。

    開発者コマンド プロンプト用の Visual Studio UI のスクリーンショット。

    次のコマンドを実行します。

    set "VCPKG_ROOT=C:\path\to\vcpkg"
    set PATH=%VCPKG_ROOT%;%PATH%
    

    環境変数の設定

    VCPKG_ROOTを設定して PATH に追加する方法を示す Visual Studio 開発者コマンド プロンプトのスクリーンショット。

    Note

    この方法で環境変数を設定すると、現在のターミナル セッションにのみ影響します。 これらの変更をすべてのセッションで永続的にするには、[Windows システム環境変数] パネルで設定します。

    VCPKG_ROOT設定すると、Visual Studio が vcpkg インスタンスを見つけるのに役立ちます。 これを PATH に追加すると、シェルから直接 vcpkg コマンドを実行できます。

  3. マニフェスト ファイルを生成し、依存関係を追加します。

    次のコマンドを実行して、vcpkg マニフェスト ファイル (vcpkg.json) を作成します。

    vcpkg new --application
    

    vcpkg new コマンドは、プロジェクトのディレクトリにvcpkg.json ファイルとvcpkg-configuration.json ファイルを追加します。

    依存関係として fmt パッケージを追加します。

    vcpkg add port fmt
    

    これで、 vcpkg.json に次のものが含まれるはずです。

    {
        "dependencies": [
            "fmt"
        ]
    }
    

    これはマニフェスト ファイルです。 vcpkg はマニフェスト ファイルを読み取り、インストールする依存関係を学習し、MSBuild と統合して、プロジェクトに必要な依存関係を提供します。

    生成されたvcpkg-configuration.json ファイルには、プロジェクトの依存関係にminimum バージョンの制約配置する基準線が導入されています。 このファイルの変更は、このチュートリアルの範囲外です。 このチュートリアルでは適用できませんが、 vcpkg-configuration.json ファイルをソース管理の下に置いて、異なる開発環境間でバージョンの一貫性を確保することをお勧めします。

3 - プロジェクト ファイルを設定する

helloworld.cpp ファイルを変更します。

helloworld.cppの内容を次のコードに置き換えます。

#include <fmt/core.h>

int main()
{
    fmt::print("Hello World!\n");
    return 0;
}

このソース ファイルには、fmt ライブラリの一部である <fmt/core.h> ヘッダーが含まれています。 main()関数はfmt::print()を呼び出して、"Hello World!" メッセージをコンソールに出力します。

Note

MSBuild を初めてビルドすると、プロジェクトにエラー波線が発生します。 vcpkg 依存関係を取得して削除するプロジェクトをビルドします。

4 - マニフェスト モードを有効にする

  1. Project プロパティ ページに移動します。
  2. 上部のメニュー ナビゲーションを使用して、 プロジェクト > プロパティを選択します。 新しいウィンドウが開きます。
  3. vcpkg > Configuration プロパティに移動し、Use vcpkg ManifestYes に設定します。 プロジェクト システムは、マニフェスト ファイルから依存関係をインストールする前に、このプロパティが設定されているかどうかを確認します。

プロジェクト プロパティでマニフェスト モードを有効にする

Visual Studio プロジェクトのプロパティで vcpkg マニフェスト モードを有効にするスクリーンショット

triplets などのその他の設定には、vcpkg がプロジェクトから検出する既定値が入力され、プロジェクトを構成するときに役立ちます。

5 - プロジェクトをビルドして実行する

  1. プロジェクトをビルドします。

    Ctrl+Shift+Bキーを押して Visual Studio でプロジェクトをビルドし、vcpkg 依存関係を取得します。

MSBuild で vcpkg.json ファイルが検出され、プロジェクトでマニフェストが有効になっている場合、MSBuild は事前ビルドステップとしてマニフェストの依存関係をインストールします。 依存関係は、プロジェクトのビルド出力ディレクトリの vcpkg_installed ディレクトリにインストールされます。 ライブラリによってインストールされたすべてのヘッダーを直接使用でき、インストールされたすべてのライブラリが自動的にリンクされます。

Note

vcpkg install は、ライブラリのデバッグ構成とリリース構成の両方をビルドします。 リリース ライブラリのみをビルドするには、トリプレットに VCPKG_RELEASE_ONLY を追加します。

  1. アプリケーションを実行します。

    最後に、実行可能ファイルを実行します。

    実行可能ファイルの実行

    実行可能ファイルを実行するための Visual Studio UI のスクリーンショット。

    次のように出力されるはずです。

    プログラムの出力

    プログラムの出力のスクリーンショット - "Hello World!"

次のステップ

vcpkg.jsonと vcpkg MSBuild の統合の詳細については、リファレンス ドキュメントを参照してください。