C++ Boost

Boost.Regex

Installation

Boost.Regex Index


ライブラリをzipファイルから解凍したら、内部のディレクトリ構造を 維持する必要がある(例えば-dオプションを使って解凍する)。 そうしていなければ、これを読むのをやめて解凍したファイルを削除して、 再び解凍作業を行うべきである。

このライブラリは利用する前に設定することは必要ない。 多くの一般的なコンパイラ、標準ライブラリ、プラットフォームは すでに「そのまま(as is)」でサポートされている。もし設定の問題を 経験したなら、或いはあなたのコンパイラでの設定を試したいなら、 その手続きはboostの全てのライブラリと同じである。 configuration library documentationを参考のこと。

ライブラリでは全てのコードはboost名前空間の中にある.

他のいくつかのテンプレートライブラリとは異なり、このライブラリは テンプレートコード(ヘッダの中にある)と、静的なコード とデータ(cppファイルの中にある)の両方で構成されている。 つまり使う前に、ライブラリのコードをライブラリファイルやアーカイブファイル にビルドすることが必要である。プラットフォーム特有の指示は以下の通りである:

Borland C++ Builder:

make -fbcb5.mak

ビルドプロセスは多くの.libと.dllファイルをビルドする(正確な 数は利用したBorlandのツールのヴァージョンによる)。.libと.dllファイル はmakefileが使ったものに従いbcb4またはbcb5というサブディレクトリの中にある。 ライブラリを開発システムにインストールするためには:

make -fbcb5.mak install

ライブラリファイルは<BCROOT>/libにコピーされ、 .dllファイルは<BCROOT>/binにコピーされる。<BCROOT>の場所は Borland C++のツールがインストールされている場所に対応する。

次のようにすれば、ビルドプロセスの間に作られた一時的なファイル (.libと.dllファイルを除く)を削除することが出来る:

make -fbcb5.mak clean

最後に、regex++を使うときに唯一必要なことは<boost>ルートディレクトリを プロジェクトのインクルードディレクトリのリストに加えることである。 .libファイルをプロジェクトに手動で加えることは必要ではない。 ヘッダは自動的に、ビルドモードに適切な.libファイルを選択し、 リンカにそれをインクルードするように伝える。しかしひとつ警告することがある: ライブラリは、コマンドラインからGUIアプリケーションをビルドする時に、 ビルドを可能にするためのVCLと非VCLの違いを見分けられない。 もし5.5コマンドラインツールでコマンドラインからビルドするなら、 正しいリンクライブラリが選択されるように、プリプロセッサで _NO_VCLを定義しなければならない: C++ Builder IDEは通常これを自動的に設定する。 5.5コマンドラインツールのユーザはこのオプションを恒久的にするために、 -D_NO_VCLをbcc32.cfgに加えればいいだろう。

dllランタイムを使っている時にregexライブラリに動的リンクをしたいなら, BOOST_REGEX_DYN_LINKを定義すればよい(複数のdllの中でboost.regexを使うならこれをしなければならない). 既定ではboost.regexは静的リンクが行われる.

自動的なリンクを抑制したいなら(そして好きな.libを使いたいなら) BOOST_REGEX_NO_LIBを定義すればよい。

もしC++ Builder 6でビルドするなら、<boost/regex.hpp> は プリコンパイルドヘッダの中で利用できない(実際の問題は<locale>の中にある。 これは<boost/regex.hpp>の中でインクルードされている)。もしこれが 問題なら、ビルドするときにBOOST_NO_STD_LOCALEを定義してみること。 これはboostのいくらかのものを利用できなくするが、コンパイル時間を 短縮する。

Microsoft Visual C++ 6 and 7

このライブラリをビルドするにはMSVCのバージョン6が必要である。 VC5を使っているなら、このライブラリ の以前のリリースのひとつを見た方がよい。

コマンドプロンプトを開く。必要なMSVCの環境変数が定義されて いなければならない(例えば、Visual Studioのインストールによって 同時にインストールされたVcvars32.batファイルを利用できる。) そして<boost>\libs\regex\build ディレクトリに移動する。

正しいmakefileを選択する。vc6.makは「オーソドックスな」 Visual C++ 6 のためのものであり、STLPortを利用しているなら、 vc6-stlport.makを選択すること。

以下のようにmakefileを呼び出す。

nmake -fvc6.mak

「vc6」というサブディレクトリの中に、多くの.libと.dllファイル が出来ている。これらを開発環境にインストールするために:

nmake -fvc6.mak install

.libファイルは<VC6>\lib ディレクトリにコピーされ、 .dllファイルは<VC6>\bin にコピーされる。<VC6>の場所は Visual C++ 6 のインストールのルートである。

nmake -fvc6.mak clean 

最後に、regex++を使うときに唯一必要なことは<boost>ルートディレクトリを プロジェクトのインクルードディレクトリのリストに加えることである。 .libファイルをプロジェクトに手動で加えることは必要ではない。 ヘッダは自動的に、ビルドモードに適切な.libファイルを選択し、 リンカにそれをインクルードするように伝える。

動的C++ランタイムを使っている時にregexライブラリに動的リンクをしたいなら, プロジェクトをビルドする時にBOOST_REGEX_DYN_LINKを定義すればよい.

ソースコードを直接プロジェクトに追加したいなら, BOOST_REGEX_NO_LIBを定義すれば 自動的なライブラリ選択が抑制される.

Microsoftのコンパイラでboost.regexを使う時は,注意するべき重要な点が多くある.

GCC(2.95 and 3.x)

<boost>/libs/regex/buildの通常のboost Jamfileを使ってgccでビルドすることが出来る. また,g++コンパイラのために伝統的なmakefileもある.コマンドプロンプトから <boost>/libs/regex/buildディレクトリに移動して:

make -fgcc.mak 

ビルドプロセスの最後に、ライブラリのリリースバージョンとデバッグバージョン が入ったgccというサブディレクトリができる(libboost_regex.aとlibboost_regex_debug.a)。 regex++を使ったプロジェクトをビルドする時は、boostをインストール したディレクトリをインクルードパスのリストに加え、 <boost>/libs/regex/build/gcc/libboost_regex.aを ライブラリファイルのリストに加える必要がある。

共有ライブラリとしてライブラリをビルドするためのmakefileもある:

make -fgcc-shared.mak

libboost_regex.so と libboost_regex_debug.soが出来る.

これらのmakefileは両方とも以下の環境変数をサポートしている。

CXXFLAGS: 追加のコンパイルオプション - これらはデバッグビルドと リリースビルド両方で適用される。

INCLUDES: 追加のインクルードディレクトリ

LDFLAGS: 追加のリンカオプション

LIBS: 追加のライブラリファイル

もっと冒険したければ、<boost>/libs/configにコンフィギュアスクリプト がある。config library documentation参照.

Sun Workshop 6.1

sun (6.1) コンパイラ (C++ version 3.12)用のmakefileがある。 コマンドプロンプトから <boost>/libs/regex/buildディレクトリ に移動して、次のようにすること:

dmake -f sunpro.mak 

ビルドプロセスの最後にこのライブラリのシングルそしてマルチスレッドバージョンが入った sunproサブディレクトリが出来ている(libboost_regex.a, libboost_regex.so, libboost_regex_mt.a そして libboost_regex_mt.so)。 regex++を使うプロジェクトをビルドするときには、boostインストールディレクトリを インクルードパスのリストに、<boost>/libs/regex/build/sunpro/ を ライブラリ検索パスに加える必要がある。

makefileは以下の環境変数をサポートしている。

CXXFLAGS: 追加のコンパイルオプション - これらはデバッグビルドと リリースビルド両方で適用される。

INCLUDES: 追加のインクルードディレクトリ

LDFLAGS: 追加のリンカオプション

LIBS: 追加のライブラリファイル

LIBSUFFIX: ライブラリのネームマングリングのための接尾辞(デフォルトでは 何もつけない)

このmakefileは-xarch=v9のような構造(architecture)特有のオプションを 設定しないので、適切なマクロを定義してこれらを設定する必要がある。 例えば:

dmake CXXFLAGS="-xarch=v9" LDFLAGS="-xarch=v9" LIBSUFFIX="_v9" -f sunpro.mak

これはlibboost_regex_v9.a等と名付けられたregexライブラリのv9用のものを ビルドする。

Other compilers:

汎用のmakefile(generic.mak)が <boost-root>/libs/regex/build にある。使う前に設定が必要な環境変数 の詳細は、このmakefile参照.

またはJam based build system を使うことが出来る: <boost>/libs/regex/buildで

bjam -sTOOLS=mytoolset

もしプラットフォームのためにライブラリの設定が必要なら config library documentationを参照.


Revised 24 Oct 2003

ゥ Copyright John Maddock 1998- 2003

Use, modification and distribution are subject to the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)