BoostのregexをVC2005expressでつかう

BoostのregexをVC2005expressでつかう。

Windows.hやuser32.libがあってこれらを使ったコンパイルが通ることが前提。

1.47を使う。最新の1.49ではなんかおかしかったのでパスした。

展開したら、コマンドプロンプトを開き。まずVC2005のvcvarsallを実行する。

次に展開したboostの下の、C:\aaa\boost_1_47_0\libs\regex\buildに行く。

nmakeする。

環境変数INCLUDEやLIBが正しく設定されてないとエラーが出るので、以下のような感じで直す。

メイクが成功すると、vc8フォルダに*.libファイルがたくさんできる。
ファイル名の意味は以下のようになる。
先頭に “lib” がついてるのはスタティックライブラリ。大きい
‘s’ はランタイムへのスタティックリンクをしているもの。
‘d’ はデバッグビルドしたもの。
‘g’ はデバッグランタイムでビルドしたもの。
‘mt’ はマルチスレッドだが、これからはこれが標準(以下参照)

以下のコマンドを実行すれば、標準のLIBパスにコピーしようとするがここではやらない。

ここでできた*.libを適当な場所にコピーして、vc2005の「追加のライブラリパス」に追加する。
ただしメイクの際に/MLdを無視しますみたいなwarningが出てたのでシングルスレッドのは意味がないかもしれない。

最初にboostのインクルードを追加する。

これであとは、boostのソースコード(おそらく
config/auto_link.hpp)がコンパイル時に適切なlibを探してリンク(#pragma comment lib)してくれる。

以下はboostのサイトにあったソースコード

ワイド化してもコンパイルできる。

Leave a Reply

Your email address will not be published. Required fields are marked *

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)