vcpkg ポートでのビルド エラーのトラブルシューティング

このガイドは、vcpkg を使用してポートをインストールするときに問題が発生するユーザーを対象としています。

エラー ログを見つける

ビルドエラーは、ほぼ無限の理由で発生する可能性があります。 vcpkg がポートのビルドに失敗した場合、その理由を診断する最初の手順は、ログ ファイルを読み取る方法です。

vcpkg は、ポートの構築中に呼び出される外部プロセスごとにログ ファイルを生成します。 エラーが発生すると、vcpkg は、エラーが発生する前に実行された最後のプロセスのログ ファイルの場所を出力します。 vcpkg の出力で 、"詳細についてはログを参照してください:" という行を探します。

例: ログ ファイルの場所の出力

    See logs for more information:
      C:\Users\viromer\work\vcpkg\buildtrees\detect_compiler\config-x64-linux-rel-CMakeCache.txt.log
      C:\Users\viromer\work\vcpkg\buildtrees\detect_compiler\config-x64-linux-out.log

生成されたすべてのログ ファイルを見つけるには、(適切なポート名に$VCPKG_ROOT/buildtrees/<port>/置き換えて) ポートのbuildtreesディレクトリを調べます<port>

ポートの資産をダウンロードできませんでした

Note

資産キャッシュを使用すると、キャッシュされた資産を継続的に利用できるようにすることで、この種の問題を軽減できます。

ポートをインストールすると、ネットワークから資産をダウンロードするときにエラーが発生します。

CMake Error at scripts/cmake/vcpkg_download_distfile.cmake:32 (message):

  Failed to download file with error: 1

原因 1: ダウンロード URL が無効になった

理由により、vcpkg の制御 URL の外部が無効になる可能性があります。 破損したリンクは、Web ブラウザーを使用してダウンロード URL に移動することで診断できます。リンクが壊れていると、404 状態コードが生成されます。

解決手順:

1 - 資産の代替ダウンロード URL を使用するようにポートを変更します。

原因 2: ファイルのハッシュが、予想される SHA512 と一致しません

error: Failed to download from mirror set
error: File does not have the expected hash:
url: https://github.com/OpenImageIO/oiio/archive/v2.4.13.0.tar.gz
File: /home/user/vcpkg/downloads/OpenImageIO-oiio-v2-9325beef.4.13.0.tar.gz.1925416.part
Expected hash: 9325beefce55b66a58fcfc2ce93e1406558ed5f6cc37cb1e8e04aee470c4f30a14483bebfb311c329f7868afb6c508a052661c6b12d819a69f707c1a30cd9549
Actual hash: 9e887c7039995ce7c41556e09a7eed940863260a522ecf7d9bec300189026ed507da560620dfa4a619deeb679be7adf42fe3a7020ff3094df777c7934c771227

このエラーは、アップストリーム ファイルがサーバーによって何らかの方法で変更されたが、ダウンロード URL が同じままである場合に発生します。 セキュリティ対策として、vcpkg は、資産に対して想定される SHA512 と一致しない SHA512 を持つファイルを拒否します。

解決手順:

1 - ダウンロードしたファイルがセキュリティで保護されていることを確認する 2 - 新しいファイルの SHA512 を使用するようにポートを変更する

Visual Studio ツールチェーンが見つかりません

ポート vcpkg をインストールするときに、適切なツールチェーンを見つけることができません。

error: in triplet arm-windows: Unable to find a valid toolchain for requested target architecture arm.
The selected Visual Studio instance is at: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools
The available toolchain combinations are: x86, amd64, x86_amd64, amd64_x86

原因 1: ターゲット アーキテクチャに適したツールチェーンがインストールされていない

Visual Studio インスタンスが目的の vcpkg バージョンと一致し、このエラーが発生した場合、最も可能性の高い原因は、適切なツールチェーンがインストールされていないことです。

  • Visual Studio インストーラーを開き、適切なツールチェーンをインストールします。

原因 2: 選択した Visual Studio のバージョンが正しくありません

必要なツールチェーンがインストールされている場合、vcpkg が、ツールチェーンがインストールされていない間違ったバージョンの Visual Studio を選択している可能性があります。 詳細については、 Visual Studio 選択アルゴリズム のドキュメントを参照してください。

解決手順:

1 - 適切なバージョンに設定 VCPKG_PLATFORM_TOOLSET します。 2 - または、目的の Visual Studio インスタンスの VCPKG_VISUAL_STUDIO_PATH インストール パスを設定します。

不足しているシステムの依存関係

必要なビルド ツールまたはシステムの依存関係が環境にインストールされていません。

例: ポートにはシステムの依存関係が必要

alsa currently requires the following programs from the system package manager:
    autoconf autoheader aclocal automake libtoolize
On Debian and Ubuntu derivatives:
    sudo apt install autoconf libtool
On recent Red Hat and Fedora derivatives:
    sudo dnf install autoconf libtool
On Arch Linux and derivatives:
    sudo pacman -S autoconf automake libtool
On Alpine:
    apk add autoconf automake libtool

システムの依存関係を必要とするほとんどの vcpkg ポートでは、インストール時にメッセージが出力されます。 場合によっては、必要なシステム依存関係の一覧が不完全な場合があります。 この種類の問題の診断は、基になる構築されたシステムによって異なります。エラー ログをチェックしてエラーの原因を特定します。

解決手順:

1 - 適切な手順に従って、不足しているシステム依存関係を環境にインストールします。

問題がこの一覧に含まれていない

問題がここに記載されていない場合は、リポジトリにアクセスして新しい問題を作成してください。