/ 最近 .rdf 追記 編集 設定 本棚

脳log[20040130] SQLite + Ruby/DBI が使えるようになるまで | | | | |



2004年01月30日 (金)

SQLite + Ruby/DBI が使えるようになるまで

慣れない作業で苦労しました

1. SQLite のインストール

SQLite は Windows ユーザー向けには、exe (コマンドラインツール) と dll 形式でバイナリが配布されている。必要なのは lib (ライブラリ)だから dll からインポートライブラリを作る。ところがハマった。

× implib sqlite.lib sqlite.dll
○ implib -a sqlite.lib sqlite.dll

Borland の implib.exe についてのヘルプを見ると

-a : Add '_' alias for cdecl functions for compatibility with Microsoft libraries

*.c では Init_*() な関数が *.so では _Init_*() になってる理由はコレでしたか。余計なことはしてくれるな > MS

2. Ruby/DBI のインストール

SQLite 用の DBD はソースファイル(sqlite.c)のままだからコンパイルが必要。でも、コンパイルを行う

ruby setup.rb setup

が失敗する。中で呼ばれる ruby-dbi-all/ext/dbd_sqlite/extconf.rb が失敗してるのが原因らしい。

extconf.rb 失敗の原因のひとつは 1. で作ったインポートライブラリ。もうひとつは rbconfig.rb やった。

最初に、原因を突き止めようと mkmf.log を見てみたら

cl -nologo 〜略〜

なんて行がある。cl なんてコマンド、このコンピューターには存在しない。検索したら VC++ のコンパイラだって。また MS ですよ。

ruby1.6.8 の時は bcc でコンパイルされたバイナリを拾って来てたんやけど、1.8.1 は bcc 版のバイナリがみつからなくって msvc 版を拾って来てた。動かす分にはどちらでも問題は無いんやけど。

3. ruby-1.8.1 のコンパイル

rbconfig.rb 内の "cl" を "bcc32" に置換するだけで解決する問題ではなく、ruby のコンパイルから行う。

・ ・ ・ ・ ・

何か DOS プロンプトがおかしいみたい。configure.bat を実行して、そこから make が呼ばれた瞬間、フリーズする。@echo とか @type とか しょうもない行で。

再起動しまくり。あきらめた。

・ ・ ・ ・ ・

cygwin を入れて bash から configure を呼んでみる。1391行目でハネられる。何やってんのか解らへんから解決不可能。この行を飛ばしてみても 1500行目くらいでまたハネられる。あきらめた。

・ ・ ・ ・ ・

もう 1 つの PC (WinXP) に BCC55 を入れて configure.bat に再挑戦。途中、ちょこちょこ止まるものの すぐ解決して ruby.exe が完成。

4. Ruby/DBI のインストール

3. で rbconfig.rb の問題はなくなり、implib の問題に気づいた後は Ruby/DBI のコンパイル & インストールも問題なく完了。

5. 元の PC (Win98) に完成品をコピー

C:\ruby 以下を丸々コピー。