2019年3月28日木曜日

今頃vcpkgの話

Visual Studio 2015 を導入しまして(過去のしがらみから、なかなかVC5から脱却できませんでした)、本格的に vcpkg を導入する事にしました。
なんせ、ライブラリのバックオーダーが多くて、迂闊に環境を変えてバグでも出そうもんなら罵られかねない状況なのもあり、やっと感はあります。
Visual Studio 2017 は、アップデートで勝手にライブラリが変わってしまうので、敬遠しました。
Visual Studio 2015 のインストールから、vcpkg でのビルドに至るまでに、いくらか躓いたので、その辺を書いておきます。

  • Visual Studio 2015のインストールでハマった。
  • コマンドプロンプトでハマった
  • プロキシでハマった
  • Debug|Releaseでハマった

Visual Studio 2015のインストールでハマった

Dドライブに Visual Studio 2015をインストールしました。結論から言うと、Dドライブにインストールしてもvcpkgは、ちゃんと動きます
当たり前の話ですが「Visual C++」要ります(まさかデフォルトで入らないと思いませんでした)。
「ユニバーサルWindowsアプリ開発ツール」要ります(無いとMSBuildが~って怒られます)。
「英語のVisual Studio 2015言語パック」ほぼ必須な zlib のビルドが無いと通りません。

コマンドプロンプトでハマった

開発者コマンドプロンプトを使って vcpkg をビルドしたら、vcpkg がビルドできませんでした。
いろんなプラットフォームを選択できるので、Windows PowerShell からコマンドを実行しましょう。

プロキシでハマった

そんなにハマったわけではありませんが、知らないと苦労すると思います。
プロキシを設定している人は、 コントロールパネルのシステム:システムの詳細にて、システムの環境変数に以下の環境変数を追加しましょう
set HTTP_PROXY=http://proxy-server:8080
set HTTPS_PROXY=http://proxy-server:8080
perl といった Unix 由来のツールが、こっそり環境変数を参照します。

Debug|Releaseでハマった

FAQによるとDebugかReleaseはターゲットの名前が完全一致で判定しているそうです。UnicodeRelease というターゲットを設定していると、ビルド時に、どっちかわからんと怒られました。
vcxproj ファイルをテキストエディタで開いて、以下の設定を加えました。
  <PropertyGroup>
    <VcpkgConfiguration Condition="'$(Configuration)' == 'UnicodeRelease'">Release</VcpkgConfiguration>
  </PropertyGroup> 

0 件のコメント: