[PHP-users 10355] Re: PHP + GDインストールについて質問です。

新村 篤史 php-users@php.gr.jp
Thu, 26 Sep 2002 09:31:08 +0900


新村です。
既に、大場さんからフォローがありましたので、横槍ですけど。。。

Wed, 25 Sep 2002 20:28:13 +0900 の刻
Tomoko Okiyama <okiyama@buddy.co.jp> は書かれました:

> Makefileファイルの修正内容
> CFLAGS=-O -DHAVE_LIBXPM -DHAVE_LIBPNG -DHAVE_LIBJPEG \
>           -DHAVE_LIBFREETYPE -DHAVE_LIBTTF -DJISX0208

-DHAVE_LIBFREETYPE ?? gcc は、どの版をお使いですか?

> LIBS=-lgd -lpng -lz -ljpeg -lfreetype -lm -lttf

-lfreetype 大場さんのご指摘どおり。-L/*** は正しくシステムが認識
していますか?

RedHat 7.2 だと
[root@maria lib]# pwd
/usr/lib
[root@maria lib]# ls *free*
libfreetype.a   libfreetype.so    libfreetype.so.6.2.0
libfreetype.la  libfreetype.so.6

> INCLUDEDIRS=-I. -I/usr/local/include/freetype2 \
>             -I/usr/include/X11 \
>             -I/usr/X11R6/include/X11 \
>             -I/usr/local/include

RedHat 7.3,7.2 では、rpm で freetyp1,freetype2 がインストールさ
れているはずです。7.3 の freetype2 が古いのでしょうか?それなら
ば、srpm を rpm --rebuild でソースまで展開して停止させ、spec フ
ァイルを、バージョン、リリース、ソース名称、パッチの記述を書き換
えて、redhat/SOURCES に新しい freetype2 を入れて、redhat/SPECS
で、rpm -ba freetype*.specとでもすれば、rpm,srpmを作成してくれま
す。

> 以下がmake時のエラーないようです。
> gcc -I. -I/usr/local/include/freetype2 -I/usr/include/X11 
> -I/usr/X11R6/include/X11 -I/usr/local/include -O -DHAVE_LIBXPM
>  -DHAVE_LIBPNG -DHAVE_LIBJPEG -DHAVE_LIBFREETYPE -DHAVE_LIBTTF
>  -DJISX0208
>    -c -o gdttf.o gdttf.c
> gdttf.c:23:22: freetype.h: そのようなファイルやディレクトリは
> ありませんmake: *** [gdttf.o] エラー 1

RedHat 7.3,7.2 では、
/usr/include/freetype1/freetype,/usr/include/freetype2/freetype
がヘッダファイルの置き場所です。

従って、-I/usr/include/freetype2/freetype

じゃないでしょうか?
gdttf.c が、#include <freetype.h> の場合ですが。
#include <freetype2/freetype.h> なら、
思い切って、#include<freetype2/freetype/freetype.h>
と書き直すのが、楽かな。

> GDをインストールする前に、PHPを先にインストールしてしまいまし
> たがこの辺は問題ないでしょうか?

rpm と違って、恐らく prefix が、/usr/local で、どれも入っちゃっ
たでしょうから、当然ライブラリの位置関係も違います。

#/sbin/ldconfig をして、更に path 関係を見直さなければならないと
思いますけど。基本的に、大場さんのご指摘の通りじゃないかなと思い
ます。一度、インストールしたものをチェックしなおしてみてからでな
ければ、ライブラリの依存関係が滅茶苦茶かもしれません。ちなみに、
ldconfig のリストに/usr/local/lib は標準では入ってませんよ。

そのために、rpm,srpm ってあるわけですから。自分で代行する時は、
順序も登録も間違わないようにしなければなりませんね。大変だけど。

---
Atsushi Shinmura 新村篤史
mail-to:GGB03631@nifty.com