boost

2017年05月27日

vs2017でのboost ビルド時エラー

vs2017 でboost1.64.0 をビルドしようとしたときに所々でエラーが出たのでその時のメモです。

環境

ツールまわり

  • visual studio 2017
  • Windows Kits 10.0.15063.0

実行環境

x86 Native Tools Command Prompt for VS 2017 を管理者権限にて実行

bootstrap.bat から呼び出される %boost_root%/tools/build/src/engine/build.bat には次のように書いてありました。

If you have Visual Studio 2017 installed you will need to build from
the Visual Studio Command Prompt for VS 2017 as we where unable to
detect your toolset installtion.

エラー

ことの始まりはbootstrap.bat を動かしたときの次のエラーでした。

execnt.c(57): fatal error C1083: include ファイルを開けません。'tlhelp32.h':No such file or directory

ということで、b2.exe とかbjam.exe が作られませんでした。

tlhelp32.h

tlhelp32.h 自体のことについては置いておいて、見つからないと言われるので適当なプロジェクトでインクルードしてみると、

C:\Program Files (x86)\Windows Kits\8.1\Include\um\TlHelp32.h

にあるとのこと。あるじゃん…
それはそうと、Prompt 上のインクルードパスを調べたところ、Windows Kits は8.1 ではなく10系列が設定されていました。

C:\Program Files (x86)\Windows Kits\10\include\10.0.15063.0\...

上記ディレクトリ以下でtlhelp32.h があるか確認したところ、ありませんでした。それじゃあ見つからないと言われるのも仕方がないですね。

visual studio 2017 を最初に入れた時にWindows Kits は10.0.14393.0 が入っていたのでそちらを確認するとファイルはあったのでどうにか14393を使うようにしたところb2.exe とかbjam.exe が作られました。

エラーは続くよ

そのあとboost をビルドしようとすると、winsock2 のインクルードでやっぱりWindows Kits は10.0.15063.0 のディレクトリを参照しようとしました...

オチ

さいごに、初心に戻ってインストーラをまた立ち上げてみたところデスクトップC++x86およびx64用 Windows 10 SDK (10.0.15063.0) がチェックついてませんでした…
チェックつけてやり直したらうまくいったので、もし同じ困り方をしたらこのコンポーネントがちゃんと入っているかチェックしてみてください。

全部ちゃんとインストールしてたと思ったのに哀しかったです...



rabbitcats at 12:01|PermalinkComments(0)TrackBack(0)