民芸的プログラミング 〜ソフトウェア開発日記〜

アクセスカウンタ

zoom RSS sqlite3odbc.dll のコンパイル手順

<<   作成日時 : 2009/01/01 21:53   >>

ブログ気持玉 0 / トラックバック 0 / コメント 0

メリークリスマスと同時に公開するつもりだった sqlite3odbc 日本語対応最新版が、結果的にお正月リリースになってしまった。その原因は、sqlite3odbc.dll のコンパイルに想像以上に手間取ったため。

なので、同じ愚を今後繰り返さないために、ここにコンパイル手順をメモしておくことにする。
コンパイルには今回は cygwin の mingw を使用した。

1.sqliteodbc のソースファイル入手
本家「SQLite ODBC Driver」のページ
http://www.ch-werner.de/sqliteodbc/
から、
sqliteodbc-0.79.tar.gz (2009年1月1日時点の最新バージョン)
をダウンロードし、適当なフォルダに展開する

2.SQLite のソースファイル入手
sqlite3odbc のコンパイルには SQLite 本体のソースファイルが必要なのだが、それは上のファイルには含まれていない。別途、SQLite のソースファイルを「SQLite Home Page」
http://www.sqlite.org/
などから入手する必要がある。
私は、本日時点で最新の sqlite-3.6.7.tar.gzをダウンロードした。
これを、sqliteodbc.tar.gz を展開してできたフォルダの中で、子フォルダになるように展開し、フォルダ名を sqlite3と変更しておく。

3.手動パッチ
sqliteodbc-0.79.tar.gz を展開して出てきた mingw-cross-build.sh を適当なテキストエディタで開く。
このスクリプトの前半でパッチ適用処理をすることになっているのだが、現実にはこのパッチが書かれた時点よりも SQLite のバージョンが進んでしまっている。このため、このスクリプトは動作しない。
なので、スクリプトの内容をよく読んで、意味するところを汲み取り、自力で SQLite のソースコードにパッチをあてていく。
sqlite3odbcに必要な部分だけなら、根気さえあればできる範囲の作業量(1時間もかからない)だ。

4.SQLite コンパイル
sqliteodbc-0.79.tar.gz を展開して出てきた mf-sqlite3.mingw-cross をテキストエディタで開く。
70行目あたりで
TCC = /opt/mingw/bin/i386-mingw32msvc-gcc -O2 -D_OFF_T_ -DNO_TCL
となっているところを
TCC = gcc -mno-cygwin -O2 -D_OFF_T_ -DNO_TCL
と書き換え、
75行目あたりで
#AR = ar cr
AR = /opt/mingw/bin/i386-mingw32msvc-ar cr
#RANLIB = ranlib
RANLIB = /opt/mingw/bin/i386-mingw32msvc-ranlib
となっているところを
AR = ar cr
RANLIB = ranlib
と書き換える。
そして、cygwin の bash シェルを起動し、sqliteodbc-0.79.tar.gz を展開したフォルダに cd してから
> make -C sqlite3 -f ../mf-sqlite3.mingw-cross all
これで SQLite Version 3 がコンパイルされる。

5.sqlite3odbc コンパイル
sqliteodbc-0.79.tar.gz を展開して出てきた Makefile.mingw-cross をテキストエディタで開く。
4行目あたりで
MINGW = /opt/mingw/i386-mingw32msvc
CC = $(MINGW)/bin/gcc
STRIP = $(MINGW)/bin/strip
RC = $(MINGW)/bin/windres
となっているところを
CC = gcc -mno-cygwin
STRIP = strip
RC = windres
と書き換える(MINGW= の行は消す)。
そして、cygwin の bash シェルを起動し、sqliteodbc-0.79.tar.gz を展開したフォルダに cd してから
> make -f Makefile.mingw-cross sqlite3odbc.dll
これで、sqlite3odbc.dll がコンパイルされる。

以上

テーマ

関連テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文
sqlite3odbc.dll のコンパイル手順 民芸的プログラミング 〜ソフトウェア開発日記〜/BIGLOBEウェブリブログ
文字サイズ:       閉じる