STLport2.5.1の入手
ダウンロードしたら適当なフォルダに解凍。
ここではC:Workに解凍した事にする。
STLportのビルド
ビルド方法は、STLport5.2.1フォルダのINSTALLというファイルに書かれている。(適当なテキストエディタで開くと見れる)
この手順にしたがって進める。
Visual Studio 2008を起動して、メニューの「ツール」→「Visual Studio 2008 Command Prompt」でコマンドプロンプトを開く。
STLportのあるフォルダへ移動。
C:\Program Files\Microsoft Visual Studio 9.0\vc\bin>cd C:\Work\STLport-2.5.1
コンフィグを設定。
コンフィグのヘルプは
で見れる。
通常はコンパイラの指定のみでよい。
VS2008を指定する。
C:\Work\STLport-2.5.1>configure msvc9
その他のオプション
--with-static-rtl
スタティックリンク用のライブラリのみ作成される
stlport/stl/config/host.h で_STLP_USE_STATIC_LIBのコメントを外して強制的にスタティックライブラリとリンクするようにしておくと良い
--with-dynamic-rtl
ダイナミックリンク用のライブラリのみ作成される
stlport/stl/config/host.h で_STLP_USE_DYNAMIC_LIBのコメントを外して強制的にダイナミックライブラリとリンクするようにしておくと良い
--extra-cxxflag /Zc:wchar_t
wchar_tをネイティブ型として認識させる
--extra-cxxflag /Zc:wchar_t-
wchar_tをネイティブ型として認識しない(unsigned shortのtypedefになる)
wchar_tはデフォルトでネイティブ型になっている。
VS2008のプロジェクトのプロパティ「構成プロパティ」→「C/C++」→「言語」→「wchar_tをビルトイン型として扱う」の設定と合わせる必要がある。
makeする。
C:\Work\STLport-2.5.1>cd build\lib
C:\Work\STLport-2.5.1\build\lib nmake clean install
binフォルダに
DLL、libフォルダにLIBファイルができる。
テストモジュールのビルド
日本語環境でそのままビルドすると、ラテン語が正しく認識されずビルドエラーになる。
C:\Work\STLport-5.2.1\test\unit\ctype_facets_test.cppの430行目を
CPPUNIT_ASSERT( ct.is(ctype_base::mask(ctype_base::print | ctype_base::lower | ctype_base::alpha), '*') );
↓
CPPUNIT_ASSERT( ct.is(ctype_base::mask(ctype_base::print | ctype_base::lower | ctype_base::alpha), 0xE7) );
と直す。
直したらビルドする。
C:\Work\STLport-2.5.1\build\lib>cd ..\test\unit
C:\Work\STLport-2.5.1\build\test\unit>nmake install
binフォルダにテストモジュールができる。
テストしてみる。
C:\Work\STLport-2.5.1\build\test\unit>cd ..\..\..\bin
C:\Work\STLport-2.5.1\bin\stl_unit_test.exe
・ ・ ・
Thear were errors! 4 of 435 tests, 3 ignored (2 explicit)
エラーが出るがとりあえずOK。
Visual Studio 2008の設定
Visual Studio 2008を起動してメニューの「ツール」→「オプション」を実行。
オプションダイアログの「プロジェクトおよびソリューション」→「
VC++プロジェクト」を選ぶ。
「インクルードファイル」に
C:\Work\STLport-5.2.1\stlport
を追加して最優先(一番上)にする。
「ライブラリファイル」に
C:\Work\STLport-5.2.1\lib
を追加して最優先(一番上)にする。
この設定はプロジェクトごとでなく、VisualStudio自身の設定なので、STLportを使いたくない場合は、優先度を下げるか削除する。
最終更新:2011年09月27日 17:10