次の方法で共有


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

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

前提条件

  • ターミナル
  • C++ コンパイラ
  • CMake
  • Git

Note

Windows ユーザーの場合、Visual Studio の MSVC (Microsoft Visual C++ コンパイラ) は、C++ 開発に必要なコンパイラです。

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 がセットアップされ、使用する準備が整いました。

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

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

    export VCPKG_ROOT=/path/to/vcpkg
    export PATH=$VCPKG_ROOT:$PATH
    

    Note

    コマンドを使用して環境変数を設定すると、 export 現在のシェル セッションにのみ影響します。 この変更をセッション間で永続的にするには、シェルのプロファイル スクリプト (例: ~/.bashrc または~/.zshrc) にコマンドを追加exportします。

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

    Note

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

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

    Note

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

    設定 VCPKG_ROOT により、vcpkg インスタンスが配置されている場所が vcpkg に指示されます。 これを追加すると PATH 、vcpkg コマンドをシェルから直接実行できるようになります。

  2. プロジェクト ディレクトリを作成します。

    mkdir helloworld && cd helloworld
    

3 - 依存関係とプロジェクト ファイルを追加する

  1. マニフェスト ファイルを作成し、依存関係を追加します fmt

    まず、ディレクトリ内からコマンドを実行vcpkg newして、プロジェクトのディレクトリにマニフェスト ファイル (vcpkg.json) をhelloworld作成します。

    vcpkg new --application
    

    次に、依存関係を追加します fmt

    vcpkg add port fmt
    

    vcpkg.json は次のようになります。

    {
        "dependencies": [
            "fmt"
        ]
    }
    

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

    既定vcpkg-configuration.jsonのファイルにはベースライン制約が導入され、プロジェクトで使用する必要がある依存関係の最小バージョンを指定します。 このファイルの変更は、このチュートリアルの範囲外ですが、プロジェクトの依存関係のバージョン制約を定義する上で重要な役割を果たします。 そのため、このチュートリアルでは厳密に必要ではありませんが、異なる開発環境間でバージョンの整合性を確保するためにソース管理に追加 vcpkg-configuration.json することをお勧めします。

  2. プロジェクト ファイルを作成します。

    次の内容の CMakeLists.txt ファイルを作成します。

    cmake_minimum_required(VERSION 3.10)
    
    project(HelloWorld)
    
    find_package(fmt CONFIG REQUIRED)
    
    add_executable(HelloWorld main.cpp)
    
    target_link_libraries(HelloWorld PRIVATE fmt::fmt)
    

    次に、ファイル内の各行の動作を CMakeLists.txt 分解しましょう。

    • cmake_minimum_required(VERSION 3.10): プロジェクトのビルドに必要な CMake の最小バージョンが 3.10 であることを指定します。 システムにインストールされている CMake のバージョンがこれより低い場合は、エラーが生成されます。
    • project(HelloWorld): プロジェクトの名前を "HelloWorld" に設定します。
    • find_package(fmt CONFIG REQUIRED): CMake 構成ファイルを fmt 使用してライブラリを検索します。 REQUIRED キーワード (keyword)により、パッケージが見つからない場合にエラーが生成されます。
    • add_executable(HelloWorld main.cpp): ソース ファイル main.cppからビルドされた "HelloWorld" という名前の実行可能ターゲットを追加します。
    • target_link_libraries(HelloWorld PRIVATE fmt::fmt): 実行可能ファイルがライブラリに HelloWorld 対して fmt リンクする必要があることを指定します。 キーワード (keyword)はPRIVATE、ビルドHelloWorldにのみ必要であり、他の依存プロジェクトには反映されないことを示fmtします。

    次の内容の main.cpp ファイルを作成します。

    #include <fmt/core.h>
    
    int main()
    {
        fmt::print("Hello World!\n");
        return 0;
    }
    

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

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

  1. CMake 構成を実行する

    CMake プロジェクト システムが vcpkg によって提供される C++ ライブラリを認識できるようにするには、ツールチェーン ファイルを vcpkg.cmake 指定する必要があります。 これを自動化するには、次の内容を含む CMakePresets.json ファイルを "helloworld" ディレクトリに作成します。

    {
      "version": 2,
      "configurePresets": [
        {
          "name": "default",
          "generator": "Ninja",
          "binaryDir": "${sourceDir}/build",
          "cacheVariables": {
            "CMAKE_TOOLCHAIN_FILE": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake"
          }
        }
      ]
    }
    

    この CMakePresets.json ファイルには、CMake 用の 1 つの "既定" プリセットが含まれており、変数が設定されます CMAKE_TOOLCHAIN_FILE 。 これにより CMAKE_TOOLCHAIN_FILE 、CMake プロジェクト システムは vcpkg によって提供される C++ ライブラリを認識できます。 この追加により、 CMakePresets.json CMake の実行時にツールチェーンを指定するプロセスが自動化されます。

    CMake を使用してビルドを構成します。

    cmake --preset=default
    
  2. プロジェクトをビルドする

    実行 (Run):

    cmake --build build
    
  3. アプリケーションの実行

    最後に、実行可能ファイルを実行して、アプリケーションの動作を確認します。

    ./build/HelloWorld
    
    Hello World!
    
    .\build\HelloWorld.exe
    
    Hello World!
    

次のステップ

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