Visual Studio 2008 + STLport5.2.1

Visual Studio 2008でSTLport2.5.1を使用する手順。

STLport2.5.1の入手

STLportは以下のサイトからダウンロードできる。
http://www.stlport.org/

ダウンロードしたら適当なフォルダに解凍。
ここでは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

コンフィグを設定。
コンフィグのヘルプは
C:\Work>configure --help
で見れる。

通常はコンパイラの指定のみでよい。
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