2019年5月21日火曜日

BOOST SPIRIT GUIDE

業務でこのライブラリ使ってまして、SJISからUNICODE化する時に、ここのパートの修正で死にそうになりました。その時に感じたのが、現状に見合った情報が少なくて、書いてある事が現状と合っているか取捨選択に時間がかかるという事。

せっかく突っ込んで調べたので、ノウハウをガイドという形で残そうと、boost::spirit のガイドを書き始めました。

自分では使っていない機能もあったりして、使ってない部分はコード書いて検証して書き進めたりしているので、そういう部分は、時間がかかったりもしてます。

一段落してきたので、ペース落として、ぼちぼちと書いてます。
https://oki-miyuki.github.io/boost_spirit_guide/

皆さんの参考になれば幸いです

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>