トップ
新規
一覧
単語検索
最終更新
ヘルプ
ログイン
アールメカブ
Boost_Install
をテンプレートにして作成
開始行:
[[Programming]]
* Mac の場合 [#yfb41621]
いろいろ情報があって,どれが「正当」なのかわからん.
とりあえず以下のように処理
imac:~ motohiro$ cd progSource/boost-jam-3.1.11
imac:boost-jam-3.1.11 motohiro$ ./build.sh
...
cd ../boost_1_33_1
imac:boost_1_33_1 motohiro$ ./bjam -sTOOLS=darwin
--prefix=/Users/motohiro/Boost install
とりあえず以下のメッセージは無視
*** If you don't need Boost.Python, you can ignore this ...
*** pass --without-python to suppress this message in th...
skipping Boost.Python library build due to missing or
incorrect configuration
couldn't find Python.h in "/System/Library/Frameworks
/Python.framework/Versions/2.4/include/python2.4"
You can configure the location of your python installation
by setting:
PYTHON_VERSION - The 2-part python Major.Minor version n...
(e.g. "2.2", NOT "2.2.1") - currently "2.4"
PYTHON_ROOT - currently "/System/Library/Frameworks
/Python.framework/Versions/2.4"
The following are automatically configured from PYTHON_R...
if not otherwise set:
PYTHON_LIB_PATH - path to Python library object;
currently
PYTHON_INCLUDES - path to Python #include direc...
currently
"/System/Library/Frameworks
/Python.framework/Versions/2.4/include/python2.4"
--------------------------------------------------------...
Building Boost.Regex with the optional Unicode/ICU suppo...
disabled.
Please refer to the Boost.Regex documentation for more i...
(and if you don't know what ICU is then you probably don...
...patience...
これでヘッダファイル系の Boost/include/boost-1_33_1 と ラ...
ヘッダはシンボルを張る
motohiro$ sudo ln -s /Users/motohiro/Boost/include/boos...
/usr/local/include/boost
ライブラリの方は,/usr/local/lib に全部突っ込んでも良いの...
motohiro$ sudo ln -s /Users/motohiro/Boost/lib
/usr/local/lib/boost
--------------
たとえば[[ここ:http://www.cbrc.jp/~tominaga/tips/osx_boos...
[[ここ:http://mugiwara.jp/Software/memo/wifky.pl?p=boost]...
>まず boost.org からboost と bjam をゲットする。 bjam は ...
<
% ./configure --with-bjam=./bjam
% make
あるいは[[こうしろという情報:http://idlysphere.blog66.fc2...
> 以前書いた引数では Boost 1.35.0 はビルドできなかったの...
<
bjam link=static threading=multi --with-thread --with-fi...
> runtime-link に static を設定できなくなったようなので、...
<
-- Mac port の場合
sudo port install boost
## error が起こったら,
## sudo port clean boost
## % sudo port install jam
## % sudo port install boost
## とやり直せばいいようだ
だが,この後
export PATH=/opt/local/bin:/opt/local/sbin/:$PATH
export MANPATH=/opt/local/man:$MANPATH
export LIBRARY_PATH=/opt/local/lib:$LIBRARY_PATH
export LD_LIBRARY_PATH=/opt/local/lib:$LD_LIBRARY_PATH
export C_INCLUDE_PATH=/opt/local/include:$C_INCLUDE_PATH
export CPLUS_INCLUDE_PATH=/opt/local/include:$CPLUS_INCL...
export DYLD_FALLBACK_LIBRARY_PATH=/opt/local/lib
export BOOST_ROOT=/opt/local/include/boost:$BOOST_ROOT
と環境変数の設定が必要.さもなければ
$ g++ main.cpp -I/opt/local/include/boost /opt/local/lib...
$ g++ main.cpp -I/opt/local/include /opt/local/lib/libbo...
などと指定してやる必要がある.
* Windows の場合. [#ac06eaf0]
- ダウンロードした boost_1_33_1.zip と boost-jam-3.1.11-1...
C:\temp\boost_1_3_11> bjam -sTOOLS=mingw install
を実行し,ヘッダとライブラリのまとまったフォルダ
C:/Boost
が作成される %%を作成%%.
- RCaBoCha/src/Makevars.win に以下を追記
PKG_CPPFLAGS = -I. -Ic:/Boost/include/boost-1_33_1
# PKG_LIBS = -Lc:/Program\ Files/CaBoCha/bin $(MECAB)
-Lc:/Boost/lib/libboost_regex-mgw.lib # (予...
* インストール [#r46146a6]
以下,[[ここ:http://freepg.fc2web.com/cpp/topic_boost_ins...
- Boost 1.33.1 の入手
BoostはBoostのホームページの[[ダウンロードページ:http://s...
File Releases から boost_1_33_1.zip と boost-jam-3.1.11-1...
boost-jam-3.1.11-1-ntx86.zip は bjam.exe が入っており、イ...
- 入手した圧縮ファイルの解凍
boost_1_33_1.zip を適当な場所に解凍します。 指定したフォ...
次に boost-jam-3.1.11-1-ntx86.zip を適当な場所に解凍しま...
解凍したフォルダ内に bjam.exe がありますので boost_1_33_1...
- Boost 1.33.1 のインストール
テンプレートで提供されている機能だけの利用であれば、 上記...
今回は regex を利用したいので bjam を使用してインストール...
尚、インストールの詳しい説明はGetting Startedを参照してく...
では、bjam を使って Boost をビルド、インストールします。D...
bjam は以下の形式になります。
bjam -sTOOLS=処理系名 --prefix=インストール先 install
以下で 処理系名は mingw 、インストール先は d:\Boost とし...
bjam -sTOOLS=mingw --prefix=d:\Boost install
ビルド、インストールは時間がかかります。 bjam が完了すれ...
* コンパイルとリンク [#x3791262]
- ヘッダファイルのインクルード
Boost.Regex を利用する場合は、boost/regex.hpp をインクル...
ソースに以下のように記述します。
#include <boost/regex.hpp>
インクルードパスの設定
コンパイルする際、インクルードパスを設定します。
「Boostのインストール」で説明した方法でインストールした場...
Boostのヘッダファイルの #include の記述は #include <boost...
例えば C:\Boost にインストールした場合は、以下のようにコ...
-Ic:/Boost/include/boost-1_33_1
- regexライブラリのリンク
次にライブラリをリンクするように指定します。
インストール先のフォルダ下の lib の下に各ライブラリが作成...
regex*の名前のものがregexのライブラリです。DLLも生成され...
libboost_regex-mgw.lib が静的ライブラリになりますので、本...
以下に、Makefileの例を記述します。
CXX = g++
CXXFLAGS = -g
LDFLAGS =
INCLUDES = -I. -Ic:/Boost/include/boost-1_33_1
LIBS = c:/Boost/lib/libboost_regex-mgw.lib
TARGET = sample1.exe
SRCS = sample1.cpp
OBJS = $(SRCS:.cpp=.o)
all: $(TARGET)
clean:
-rm $(TARGET) $(OBJS)
$(TARGET): $(OBJS)
$(CXX) $(LDFLAGS) -o $@ $(OBJS) $(LIBS)
.cpp.o:
$(CXX) $(CXXFLAGS) $(INCLUDES) -c $< -o $@
- 正規表現の利用 regex_match
regex_match は入力テキストが正規表現と完全に一致、または...
基本的な使用例を記述します。
以下のコードは、文字列 "Free Programming For Windows." に...
\は""内でエスケープ文字となりますので\\と記述します。
string str("Free Programming For Windows.");
boost::regex reg("Free.+Windows\\.");
if (boost::regex_match(str, reg)) {
cout << "===> Matched." << endl;
} else {
cout << "===> Not matched." << endl;
}
結果は真となり、以下のように表示されるはずです。
===> Matched.
次に、以下のコードではどうでしょうか?
string str("Free Programming For Windows.");
boost::regex reg("Free.+Windows");
if (boost::regex_match(str, reg)) {
cout << "===> Matched." << endl;
} else {
cout << "===> Not matched." << endl;
}
正規表現に先後の.の一致がありませんので、結果は偽となり、...
===> Not matched.
このように、regex_match は正規表現と完全に一致した場合に...
では、正規表現はそのままに以下のように regex_constants::m...
string str("Free Programming For Windows.");
boost::regex reg("Free.+Windows");
if (boost::regex_match(str, reg, boost::regex_constants...
cout << "===> Matched." << endl;
} else {
cout << "===> Not matched." << endl;
}
regex_constants::match_partial を指定すると、途中まで一致...
===> Matched.
次に match_results を利用して、マッチした値を取得します。
string str("Free Programming For Windows.");
boost::regex reg("Free (\\w+) (\\w+) Windows\\.");
boost::smatch result;
if (boost::regex_match(str1, result, reg1c)) {
cout << "===> Matched." << endl;
cout << "size():" << result.size() << endl;
cout << "result.str(0):" << result.str(0) << endl;
cout << "result.str(1):" << result.str(1) << endl;
cout << "result.str(2):" << result.str(2) << endl;
} else {
cout << "===> Not matched." << endl;
}
match_resultsは正規表現でマッチした結果の集合を示します。...
結果は以下のようになります。
===> Matched.
size():3
result.str(0):Free Programming For Windows.
result.str(1):Programming
result.str(2):For
* Boost.Regexを使ってみる(1) [#u96317ad]
今回はMinGW環境下でBoost.Regexを使ってみます。 Boost.Rege...
- 正規表現の利用regex_search
regex_search は入力テキストに正規表現に一致するものが含ま...
基本的な使用例を記述します。
以下のコードは、文字列 "Free <em>Programming</em> For Win...
string str("Free <em>Programming</em> For Windows.");
boost::regex reg("<[^>]+>");
if (boost::regex_search(str, reg)) {
cout << "===> Matched." << endl;
} else {
cout << "===> Not matched." << endl;
}
結果は真となり、以下のように表示されるはずです。
===> Matched.
次の例は、一致した文字をすべて取得し表示します。
string str("Free <em>Programming</em> For Windows.");
boost::regex reg("<[^>]+>");
string::const_iterator start=str.begin();
string::const_iterator end=str.end();
boost::smatch result;
while (regex_search(start, end, result, reg)) {
cout << result.str(0) << endl;
start = result[0].second;
}
結果は以下のように表示されます。
<em>
</em>
以下は同時に()でグルーピングした値を取得しています。
string str("Free <em>Programming</em> For Windows.");
boost::regex reg("<([^>]+)>");
string::const_iterator start=str.begin();
string::const_iterator end=str.end();
boost::smatch result;
while (regex_search(start, end, result, reg)) {
cout << result.str(0) << endl;
cout << result.str(1) << endl;
start = result[0].second;
}
結果は以下のように表示されます。
<em>
em
</em>
/em
- regex_replace
regex_replace は正規表現に一致するものを置換します。
基本的な使用例を記述します。
以下のコードは、文字列 "Free Programming For Windows." に...
string str("Free Programming For Windows.");
boost::regex reg("P\\w+");
string str2 = regex_replace(str, reg, "Software");
cout << str2 << endl;
結果は、以下のように表示されます。
Free Software For Windows.
置換文字列には$0等でマッチした値を使用することができます。
string str("Free Programming For Windows.");
boost::regex reg("P\\w+");
string str2 = regex_replace(str, reg, "<em>$0</em>");
cout << str2 << endl;
結果は、以下のように表示されます。
Free <em>Programming</em> For Windows.
終了行:
[[Programming]]
* Mac の場合 [#yfb41621]
いろいろ情報があって,どれが「正当」なのかわからん.
とりあえず以下のように処理
imac:~ motohiro$ cd progSource/boost-jam-3.1.11
imac:boost-jam-3.1.11 motohiro$ ./build.sh
...
cd ../boost_1_33_1
imac:boost_1_33_1 motohiro$ ./bjam -sTOOLS=darwin
--prefix=/Users/motohiro/Boost install
とりあえず以下のメッセージは無視
*** If you don't need Boost.Python, you can ignore this ...
*** pass --without-python to suppress this message in th...
skipping Boost.Python library build due to missing or
incorrect configuration
couldn't find Python.h in "/System/Library/Frameworks
/Python.framework/Versions/2.4/include/python2.4"
You can configure the location of your python installation
by setting:
PYTHON_VERSION - The 2-part python Major.Minor version n...
(e.g. "2.2", NOT "2.2.1") - currently "2.4"
PYTHON_ROOT - currently "/System/Library/Frameworks
/Python.framework/Versions/2.4"
The following are automatically configured from PYTHON_R...
if not otherwise set:
PYTHON_LIB_PATH - path to Python library object;
currently
PYTHON_INCLUDES - path to Python #include direc...
currently
"/System/Library/Frameworks
/Python.framework/Versions/2.4/include/python2.4"
--------------------------------------------------------...
Building Boost.Regex with the optional Unicode/ICU suppo...
disabled.
Please refer to the Boost.Regex documentation for more i...
(and if you don't know what ICU is then you probably don...
...patience...
これでヘッダファイル系の Boost/include/boost-1_33_1 と ラ...
ヘッダはシンボルを張る
motohiro$ sudo ln -s /Users/motohiro/Boost/include/boos...
/usr/local/include/boost
ライブラリの方は,/usr/local/lib に全部突っ込んでも良いの...
motohiro$ sudo ln -s /Users/motohiro/Boost/lib
/usr/local/lib/boost
--------------
たとえば[[ここ:http://www.cbrc.jp/~tominaga/tips/osx_boos...
[[ここ:http://mugiwara.jp/Software/memo/wifky.pl?p=boost]...
>まず boost.org からboost と bjam をゲットする。 bjam は ...
<
% ./configure --with-bjam=./bjam
% make
あるいは[[こうしろという情報:http://idlysphere.blog66.fc2...
> 以前書いた引数では Boost 1.35.0 はビルドできなかったの...
<
bjam link=static threading=multi --with-thread --with-fi...
> runtime-link に static を設定できなくなったようなので、...
<
-- Mac port の場合
sudo port install boost
## error が起こったら,
## sudo port clean boost
## % sudo port install jam
## % sudo port install boost
## とやり直せばいいようだ
だが,この後
export PATH=/opt/local/bin:/opt/local/sbin/:$PATH
export MANPATH=/opt/local/man:$MANPATH
export LIBRARY_PATH=/opt/local/lib:$LIBRARY_PATH
export LD_LIBRARY_PATH=/opt/local/lib:$LD_LIBRARY_PATH
export C_INCLUDE_PATH=/opt/local/include:$C_INCLUDE_PATH
export CPLUS_INCLUDE_PATH=/opt/local/include:$CPLUS_INCL...
export DYLD_FALLBACK_LIBRARY_PATH=/opt/local/lib
export BOOST_ROOT=/opt/local/include/boost:$BOOST_ROOT
と環境変数の設定が必要.さもなければ
$ g++ main.cpp -I/opt/local/include/boost /opt/local/lib...
$ g++ main.cpp -I/opt/local/include /opt/local/lib/libbo...
などと指定してやる必要がある.
* Windows の場合. [#ac06eaf0]
- ダウンロードした boost_1_33_1.zip と boost-jam-3.1.11-1...
C:\temp\boost_1_3_11> bjam -sTOOLS=mingw install
を実行し,ヘッダとライブラリのまとまったフォルダ
C:/Boost
が作成される %%を作成%%.
- RCaBoCha/src/Makevars.win に以下を追記
PKG_CPPFLAGS = -I. -Ic:/Boost/include/boost-1_33_1
# PKG_LIBS = -Lc:/Program\ Files/CaBoCha/bin $(MECAB)
-Lc:/Boost/lib/libboost_regex-mgw.lib # (予...
* インストール [#r46146a6]
以下,[[ここ:http://freepg.fc2web.com/cpp/topic_boost_ins...
- Boost 1.33.1 の入手
BoostはBoostのホームページの[[ダウンロードページ:http://s...
File Releases から boost_1_33_1.zip と boost-jam-3.1.11-1...
boost-jam-3.1.11-1-ntx86.zip は bjam.exe が入っており、イ...
- 入手した圧縮ファイルの解凍
boost_1_33_1.zip を適当な場所に解凍します。 指定したフォ...
次に boost-jam-3.1.11-1-ntx86.zip を適当な場所に解凍しま...
解凍したフォルダ内に bjam.exe がありますので boost_1_33_1...
- Boost 1.33.1 のインストール
テンプレートで提供されている機能だけの利用であれば、 上記...
今回は regex を利用したいので bjam を使用してインストール...
尚、インストールの詳しい説明はGetting Startedを参照してく...
では、bjam を使って Boost をビルド、インストールします。D...
bjam は以下の形式になります。
bjam -sTOOLS=処理系名 --prefix=インストール先 install
以下で 処理系名は mingw 、インストール先は d:\Boost とし...
bjam -sTOOLS=mingw --prefix=d:\Boost install
ビルド、インストールは時間がかかります。 bjam が完了すれ...
* コンパイルとリンク [#x3791262]
- ヘッダファイルのインクルード
Boost.Regex を利用する場合は、boost/regex.hpp をインクル...
ソースに以下のように記述します。
#include <boost/regex.hpp>
インクルードパスの設定
コンパイルする際、インクルードパスを設定します。
「Boostのインストール」で説明した方法でインストールした場...
Boostのヘッダファイルの #include の記述は #include <boost...
例えば C:\Boost にインストールした場合は、以下のようにコ...
-Ic:/Boost/include/boost-1_33_1
- regexライブラリのリンク
次にライブラリをリンクするように指定します。
インストール先のフォルダ下の lib の下に各ライブラリが作成...
regex*の名前のものがregexのライブラリです。DLLも生成され...
libboost_regex-mgw.lib が静的ライブラリになりますので、本...
以下に、Makefileの例を記述します。
CXX = g++
CXXFLAGS = -g
LDFLAGS =
INCLUDES = -I. -Ic:/Boost/include/boost-1_33_1
LIBS = c:/Boost/lib/libboost_regex-mgw.lib
TARGET = sample1.exe
SRCS = sample1.cpp
OBJS = $(SRCS:.cpp=.o)
all: $(TARGET)
clean:
-rm $(TARGET) $(OBJS)
$(TARGET): $(OBJS)
$(CXX) $(LDFLAGS) -o $@ $(OBJS) $(LIBS)
.cpp.o:
$(CXX) $(CXXFLAGS) $(INCLUDES) -c $< -o $@
- 正規表現の利用 regex_match
regex_match は入力テキストが正規表現と完全に一致、または...
基本的な使用例を記述します。
以下のコードは、文字列 "Free Programming For Windows." に...
\は""内でエスケープ文字となりますので\\と記述します。
string str("Free Programming For Windows.");
boost::regex reg("Free.+Windows\\.");
if (boost::regex_match(str, reg)) {
cout << "===> Matched." << endl;
} else {
cout << "===> Not matched." << endl;
}
結果は真となり、以下のように表示されるはずです。
===> Matched.
次に、以下のコードではどうでしょうか?
string str("Free Programming For Windows.");
boost::regex reg("Free.+Windows");
if (boost::regex_match(str, reg)) {
cout << "===> Matched." << endl;
} else {
cout << "===> Not matched." << endl;
}
正規表現に先後の.の一致がありませんので、結果は偽となり、...
===> Not matched.
このように、regex_match は正規表現と完全に一致した場合に...
では、正規表現はそのままに以下のように regex_constants::m...
string str("Free Programming For Windows.");
boost::regex reg("Free.+Windows");
if (boost::regex_match(str, reg, boost::regex_constants...
cout << "===> Matched." << endl;
} else {
cout << "===> Not matched." << endl;
}
regex_constants::match_partial を指定すると、途中まで一致...
===> Matched.
次に match_results を利用して、マッチした値を取得します。
string str("Free Programming For Windows.");
boost::regex reg("Free (\\w+) (\\w+) Windows\\.");
boost::smatch result;
if (boost::regex_match(str1, result, reg1c)) {
cout << "===> Matched." << endl;
cout << "size():" << result.size() << endl;
cout << "result.str(0):" << result.str(0) << endl;
cout << "result.str(1):" << result.str(1) << endl;
cout << "result.str(2):" << result.str(2) << endl;
} else {
cout << "===> Not matched." << endl;
}
match_resultsは正規表現でマッチした結果の集合を示します。...
結果は以下のようになります。
===> Matched.
size():3
result.str(0):Free Programming For Windows.
result.str(1):Programming
result.str(2):For
* Boost.Regexを使ってみる(1) [#u96317ad]
今回はMinGW環境下でBoost.Regexを使ってみます。 Boost.Rege...
- 正規表現の利用regex_search
regex_search は入力テキストに正規表現に一致するものが含ま...
基本的な使用例を記述します。
以下のコードは、文字列 "Free <em>Programming</em> For Win...
string str("Free <em>Programming</em> For Windows.");
boost::regex reg("<[^>]+>");
if (boost::regex_search(str, reg)) {
cout << "===> Matched." << endl;
} else {
cout << "===> Not matched." << endl;
}
結果は真となり、以下のように表示されるはずです。
===> Matched.
次の例は、一致した文字をすべて取得し表示します。
string str("Free <em>Programming</em> For Windows.");
boost::regex reg("<[^>]+>");
string::const_iterator start=str.begin();
string::const_iterator end=str.end();
boost::smatch result;
while (regex_search(start, end, result, reg)) {
cout << result.str(0) << endl;
start = result[0].second;
}
結果は以下のように表示されます。
<em>
</em>
以下は同時に()でグルーピングした値を取得しています。
string str("Free <em>Programming</em> For Windows.");
boost::regex reg("<([^>]+)>");
string::const_iterator start=str.begin();
string::const_iterator end=str.end();
boost::smatch result;
while (regex_search(start, end, result, reg)) {
cout << result.str(0) << endl;
cout << result.str(1) << endl;
start = result[0].second;
}
結果は以下のように表示されます。
<em>
em
</em>
/em
- regex_replace
regex_replace は正規表現に一致するものを置換します。
基本的な使用例を記述します。
以下のコードは、文字列 "Free Programming For Windows." に...
string str("Free Programming For Windows.");
boost::regex reg("P\\w+");
string str2 = regex_replace(str, reg, "Software");
cout << str2 << endl;
結果は、以下のように表示されます。
Free Software For Windows.
置換文字列には$0等でマッチした値を使用することができます。
string str("Free Programming For Windows.");
boost::regex reg("P\\w+");
string str2 = regex_replace(str, reg, "<em>$0</em>");
cout << str2 << endl;
結果は、以下のように表示されます。
Free <em>Programming</em> For Windows.
ページ名: