BDS2006/STLportを使いたい

2006年9月現在、BoostC++はBDS2006には対応していません。BCB6ではSTLPortライブラリでしたが、BDS2006ではdinkumwareのものに変更になり、その対応がまだ行われていない状態です。
という状態だったので、BDS2006にSTLportを入れればBoostC++を入れられるんじゃないかと思って頑張った経過を記します。

目次

用意したもの

  • STLportのソース(STLport-5.1.0-RC2.zip)
  • cygwin(cygwinサイトよりsetup.exe)
  • コンパイラはBCCでよいのですが、メイクがGNU MAKE用となっているのでcygwinを使用します。cygwinのインストール時にGNU MAKEもインストールされるようにオプションに注意してください。
    STLportの公開版4.6.2はbccがサポート外になっているため、最新版を使用します。それなりに正常動作という点では十分でないことを理解して置いてください。

インストール

最初の準備

build/lib内のconfigure.batを使用して、

configure.bat -c bcc

で準備します。または、cygwin上で

./configure -c bcc

でも良いです。

  • cygwin上で環境変数をセットします。
export INCLUDE="C:\Program Files\Borland\BDS\4.0\Include"

メイク

GNU MAKEでメイクします。

make -fbcc.mak install

最後のtlibを実行中に、

Error: unexpected char 'o' in command line
make: *** [obj/bcc/ar_g/stlportd_static.5.1.lib] Error 1

と出てしまいますが、その場合はこのtlibの部分をコピーしてDOS窓へ実行すると成功します。再びcygwinで

make -fbcc.mak install

し、同じくtlibでエラーが出たらDOS窓で対処。という繰り返しを行います。ilink32でも

Fatal: ファイル 'C0D32.OBJ' を開けません

といったエラーが出ます。該当コマンドをコピーして、-L"C:\Program Files\Borland\BDS\4.0\lib";"C:\Program Files\Borland\BDS\4.0\lib\psdk"をオプションに加えてDOS窓で実行すると成功します。
cygwinとDOS窓との往復をメイクが完了するまで行います。

static版のメイク

make -fbcc.mak clean
make -fbcc.mak install-static

でstatic版もメイクします。

BDS2006へのインストール

  1. stlportフォルダを、include配下にコピー
  2. libフォルダを、lib配下に「stlport」と名前を変えてコピー
  3. binフォルダ内のDLLを、bin内にコピー
  4. ilink32.cfgのパスに、lib\stlportを追加
  5. bcc32.cfgのパスに、include\stlport, lib\stlportを追加
  6. include\dinkumwareをはずす
  7. BSD2006上でも、ビルドオプションでインクルードパスを適宜変更することで使用可能となります。

BoostC++のインストール

結論としては出来ませんでした。bcc32.cfgの設定を見てくれない?ようです。結局「BDS2006/BoostC++を導入する」でパッチを当てる方法に落ち着きました。

リンク


2006/09/22 komina