vcpkg で install に失敗する原因
色々あると思うが今回遭遇したのは次の通り
- 依存ライブラリの消失
⇒ サポート終了のためか存在しない - ターミナルを cmd でなく PowerShellで実行
⇒ エスケープ文字が異なるため異常終了する
今回は前者に対しての備忘録です
MSYS系の場合
-
vcpkg_acquire_msys.cmake を修正
<インストールフォルダ>/scripts/cmake
下にあるvcpkg_acquire_msys.cmake
を修正する# To add new entries, use https://packages.msys2.org/package/$PACKAGE?repo=msys
上記のコメントに従い
$PACKAGE
を任意のものに変更して ブラウザで表示すると 最新のものが表示されるので対象のライブラリを置き換える- libtool の場合
変更前z_vcpkg_acquire_msys_declare_package( URL "https://repo.msys2.org/msys/x86_64/libtool-2.4.6-9-x86_64.pkg.tar.xz" SHA512 b309799e5a9d248ef66eaf11a0bd21bf4e8b9bd5c677c627ec83fa760ce9f0b54ddf1b62cbb436e641fbbde71e3b61cb71ff541d866f8ca7717a3a0dbeb00ebf DEPS grep sed coreutils file findutils )
変更後z_vcpkg_acquire_msys_declare_package( URL "https://repo.msys2.org/msys/x86_64/libtool-2.4.7-3-x86_64.pkg.tar.zst" SHA512 a202ddaefa93d8a4b15431dc514e3a6200c47275c5a0027c09cc32b28bc079b1b9a93d5ef65adafdc9aba5f76a42f3303b1492106ddf72e67f1801ebfe6d02cc DEPS grep sed coreutils file findutils )
Windowsでハッシュ値の求め方
ターミナルで次のコマンドを実行
certut -hashfile <対象ファイル> SHA512
名前 内容 対象ファイル ハッシュ値を算出する対象ファイル
MSYS系でない場合
<インストールフォルダ>/ports/<パッケージ名>/portfile.cmake
の vcpkg_download_distfile
を修正