若干つまずいたのでメモ。
boost で、いつの間にか新しいバージョン 1.57 が出ていたので、入れ替えようとしたら bootstrap.bat でエラーになり、コンパイルできませんでした。
ログを見ると、"tlhelp32.h" というファイルがインクルードできないとのこと。
探して見た所、ファイル自体は存在していて、ためしに IDE から新規プロジェクト作成して include してみても特にパスを追加することなくコンパイルは通る模様。
で、bootstrap.bat を実行しようとしていた DOS 窓で環境変数の INCLUDE と LIB をよくよく確認してみると、微妙にパス名が IDE と違っていました。
うちは、Windows8.1+VisualStudio2013 環境なんですが、上の問題で必要なパスは
C:\Program Files (x86)\Windows Kits\8.1\Lib\winv6.3\um\
ところが、環境変数は
C:\Program Files (x86)\Windows Kits\8.0\Include\um\
となっていました。
で、ふと DOS 窓のタイトルバーを見ると "VS2012 x64 Cross Tools" という文字が…。
どうやら、スタートメニューにはなぜか VS2012 用のコマンドプロンプトが登録されており、僕はそれを起動していたわけです。VS2013 用のコマンドプロンプトはスタートメニューには直接登録されていないため、スタートメニューの "VisualStudio2013" グループの "Visual Studio ツール" でフォルダを開いて、そのフォルダにある VS2013 用コマンドプロンプトを使うのが正解だったようです。
とりあえず、これでコンパイルはできるようになりましたが、なぜ VS2012 用のコマンドプロンプトが登録されていたのか…。うちは VS2012 は購入していないので、あるはずがないのです。VS2013 が VS2012 用の環境を互換性のために用意していたとか?(でも、上記のようにコンパイルできなかったわけですから、互換性ないですよね…) あるいは、Platform SDK とかもインストールしているので、それが勝手に作成したとか…?うーん、不明。
0 件のコメント:
コメントを投稿