三つ子

Triplet は、ターゲット環境 (CPU、OS、コンパイラ、ランタイムなど) を 1 つの便利な名前で完全にキャプチャする方法として、クロスコンパイルで使用される標準的な用語です。

vcpkg では、トリプレットはすべてのライブラリの架空の "ターゲット構成セット" を記述します。 トリプレット内では、ライブラリは通常、同じ構成で構築されますが、必須ではありません。 たとえば、静的および動的にビルド openssl する 1 つのトリプレットと zlib 、両方を静的にビルドするトリプレットと、両方を動的にビルドするトリプレット (すべて同じターゲット OS とアーキテクチャ用) を使用できます。

1 つのビルドでは、最大 2 つのトリプレット (ターゲット トリプレットとホスト トリプレット) のファイルが使用されます。 異なるライブラリに異なる設定を適用する必要がある場合は、その設定の組み合わせで 1 つのカスタム トリプレットを作成する必要があります。 これを行う方法については、ポートごとのカスタマイズを参照してください

vcpkg には、多くの一般的なプラットフォームと構成用の定義済みのトリプレットが付属しています。 実行 vcpkg help triplet して、環境内で使用可能な一覧を取得します。

トリプレットの選択

ターゲットトリプレットを選択するには:

現在のマシンのホスト トリプレットを選択するには:

コミュニティトリプレット

フォルダーに triplets\community 含まれるトリプレットは、キュレーションされたレジストリの継続的インテグレーションによってテストされませんが、一般的にコミュニティから要求されます。 継続的なカバレッジがないため、ポートの更新によってコミュニティトリプレットとの互換性が損なわれる可能性があります。 私たちは喜んでこれらのトリプレットの問題を解決することを目的としたコントリビューションを受け入れてレビューします。

コミュニティ トリプレットを使用すると、パッケージのインストール中に次のようなメッセージが出力されます。

-- Using community triplet x86-uwp. This triplet configuration is not guaranteed to succeed.
-- [COMMUNITY] Loading triplet configuration from: D:\src\vcpkg\triplets\community\x86-uwp.cmake

トリプレットを追加または置換する

vcpkg を拡張するには、ボックス内のトリプレットを置き換えるか、特定のプロジェクトの新しいトリプレットを作成します。

まず、組み込みのトリプレット ファイルをディレクトリから別の triplets\ ファイルシステムの場所にコピーします。 次に、vcpkg と対話するときに、そのディレクトリをオーバーレイトリプレット パスの一覧に追加します。

より詳細なチュートリアルについては、オーバーレイトリプレットの例を参照してください。

解説

vcpkg コマンドを実行するときの既定のトリプレットは、その環境変数が %VCPKG_DEFAULT_TRIPLET% 未定義の場合はプラットフォーム固有の選択肢です。

  • Windows: x64-windows
  • Linux: x64-linux
  • Osx: x64-osx

新しいトリプレットを作成するときは、体系的な名前付けスキームを使用することをお勧めします。 Androidツールチェーンの名前付けスキームは、インスピレーションの良い源です: https://developer.android.com/ndk/guides/standalone_toolchain.html.