ライブラリを構築する

ソースの取得

ftp://ftp.gnome.org/pub/GNOME/sources/libghttp/ 辺りで配布されているので、なるべく新しそうな版を取得します。これを書い ている 2003 年 1 月現在の最新版のバージョン番号は 1.0.9 です。

Linux とかいう OS が好きな人は、RPM とかいう仕掛けを使ってコンパイル済 みバイナリを入手してしまえば簡単じゃんとかおっしゃりそうですが、世の中 そうそううまくいかないので、どんな手段でも勝手ですが、ソースを入手しま しょう。

パッチをあてる

とるに足らないものですが、ちょっとした間違いを見つけたので、これを修正 するパッチを作りました。「リンク先を名前をつけて保存」みたいな手段を使っ て、適当に保存してください。ちなみに、1.0.9 用に作成してあります。

入手したソースを展開し、このパッチをあてます。

$ cd /path/to/work/directory
$ zcat /path/to/source/libghttp-1.0.9.tar.gz | tar xvf -
$ cd libghttp-1.0.9
$ patch -p1 < /path/to/patch/libghttp-1.0.9-headername.patch

コンパイル

あとは、よほど運が悪いか、特殊な OS を使っているのでない限り、次の通り で行けるでしょう。

$ ./configure --prefix=/path/to/install
$ make
$ make install

この場合、/path/to/install/lib に、libghttp.* が、 /path/to/install/include に、ghttp.h と ghttp_constans.h が インストールされます。prefix を設定しない場合は、 /path/to/install の部分が、おそらく /usr/local になるでしょ う。

なお、OS が dynamic リンクに対応していて(使えない OS は、いまどきない とは思いますが)、libtool が作成方法を知っていると、shared ライブラリが 作成されます。shared ライブラリがインストールされている状態でアプリケー ションをコンパイルすると、これを利用しようとします。この場合、標準のラ イブラリの置場所以外に shared ライブラリがおかれていると、実行時に shared ライブラリが見つけられなくて死んでしまいます。

これを避けるには、(1)インストール先を標準のライブラリディレクトリ(たぶ ん、/usr/lib)にする、(2)LD_LIBRARY_PATH 環境変数を設定する、(3)ライブ ラリへのパスをクライアントのコンパイル時に設定する、等のどれかの対処が 必要です。個人的には、(3)の対処法が好きです。ld(1) の man を参照してく ださい。gcc 2.7.2.1 では、-R オプション、gcc 2.96.1 あたりだと --rpath オプションで設定できるようです。もちろん、はじめから shared ライブラリ にならないように、ライブラリのコンパイル時に --disable-shared オプショ ンをつけて configure をする、という方法もありです。お勧めはしませんが。


Copyright © 2003 杉浦 伊織
このページに関するお問い合わせは秘 書を通してください。
最終更新: Wed Jan 22 23:40:22 2003