いいかげんOSと開発環境が古くなってきたので、
新しい環境に移行することにしました。
項目 | 移行元 | 移行先 |
OS | WinXP(32-bit) | Win7(64-bit) |
VisualStudio | 2005 | 2010 |
VisualStudioのバージョンアップに伴い、各種ライブラリも再ビルドする必要があります。
今回はboostライブラリを構築します。バージョンは現時点(2013/3/17現在)の最新1.53.0。
なお、今回はWoW64で動作する32-bitアプリケーション用のライブラリを構築します。
64-bitアプリケーション用ライブラリは作りません。
あとVisualStudio2010(VC++)はインストールしといてください。
エディションはなんでもいいですが自分はexpressにしました。
boostを楽に導入したい場合
Windowsで、少し古いバージョンでよければ
ビルド済のバイナリが以下のサイトで配布されているようです。
http://www.boostpro.com/download/
現時点(2013/3/17現在)、上記サイトのバイナリ最新は1.51.0(boostの最新は1.53.0)
今回はソースコードからビルドしますよ。
boostのビルド
まずはソースコードをダウンロードします。
http://www.boost.org/
最新の1.53.0はこちらから。
Windowsの場合はboost_1_53_0.zipを選びます。
http://sourceforge.net/projects/boost/files/boost/1.53.0/
適当なディレクトリのダウンロードして解凍します。
自分は「C:\temp」にしました。
[スタート]ボタンからVisualStudio2010を選び、
その中から[Visual Studio コマンド プロンプト (2010)]を選びます。
以下を実行して、boostの解凍ディレクトリに移動してください。
cd C:\temp\boost_1_53_0
以下を実行してください。
boostをビルドするバイナリbjam.exeなどが作成されます。
bootstrap.bat
いよいよビルドを開始します。
今回はリリースビルドのboostライブラリを静的リンクするので
パラメータvariant=release link=staticとします。
さて、bjam.exeにいろいろパラメータを渡してビルドするのですが、
一点だけ各人の環境によって変えるパラメータがあります。
bjam.exe toolset=msvc variant=release link=static runtime-link=static or shared
この「runtime-link」のパラメータです。staticかsharedか。
これはVC++の標準ライブラリを静的リンク(コンパイルオプション/MT)するか
動的リンク(コンパイルオプション/MD)するか、を決めるものです。
ここ重要です。ここを間違えると自分のプロジェクトにboostライブラリを使おうとしてもリンクでこけます。
自分のプロジェクトにboostライブラリをリンクしますが、
パラメータruntime-linkは、その自分のプロジェクトの設定と同じにする必要があります。
要は、
自分のプロジェクトが/MTなら、runtime-linkも/MT。
自分のプロジェクトが/MDなら、runtime-linkも/MD。
という感じですね。
そのあたりの記事はこちらにも書いてます。
「luabindをビルドする方法」
http://d.hatena.ne.jp/taiyakisun/20110525#1306333280
ここでは、static(/MT)にします。
bjam.exe toolset=msvc variant=release link=static runtime-link=static
ビルド完了まで、しばらく待ちます。
ビルドが正常に完了すると、ライブラリファイルはカレントディレクトリ下の
stageディレクトリ以下に作成されます。具体的には↓。
今回は静的リンク用なので*.libファイルができます。(動的の場合は*.dllができます)
C:\temp\boost_1_53_0\stage\lib
あとはVisualStudioのプロジェクトにboostのincludeパスと
ライブラリパスを追加するだけです。
・includeパス C:\temp\boost_1_53_0 ・ライブラリパス C:\temp\boost_1_53_0\stage\lib
実は、これまで[ツール]→[オプション]からVisualStudio全体の設定として
上記パスを追加できたのですが、VisualStudio2010からは追加できなくなってます。
この設定は、プロジェクトごとに行う必要があるとか・・・なんでこんなことになってるんでしょう。
プロジェクトにパスを追加するには、自分のプロジェクトのVisualStudio2010上の
ソリューション→プロジェクトを右クリック→[プロパティ]から
[構成プロパティ]→[VC++ ディレクトリ]から追加できます。
実はあるファイルにパスを書くことでVisualStudio全体の設定として
パスを追加する方法もあるみたいなのですが、よく調べてないので
後日別の記事で書こうと思います。
言っておきたいこと
実は、ライブラリを使って動作検証してないので、うまく動かないかも・・・^^;
間違いあったら訂正します。