[PHP-users 11574] Re: gd のコンパイル
桜井 厚
php-users@php.gr.jp
Tue, 19 Nov 2002 11:57:47 +0900
On Mon, 18 Nov 2002 17:12:07 +0900
fumitaka miyazato <fumi@ryucom.ne.jp> wrote:
> 皆さんこんにちは,宮里と申します。
>
> アーカイブを検索したところ,同様の質問が過去に出されていましたが,
> 解決方法がよく解らなかったため,質問させていただきます。
>
> gd の組み込みがうまく行かなくて困っています。
> 具体的には,PHP のコンパイル時に以下のエラーが出ます。
私も困っていました。
> gd.c:92: conflicting types for `gdIOCtx'
> /usr/local/include/gd_io.h:18: previous declaration of `gdIOCtx'
>
> 前の投稿では,「古いバージョンの gd が同居していたため」
> となっていたので古い(と思われる)gd 関連ファイルを
> 削除しましたが,うまく行きませんでした。
> どれが gd 関連のファイルなのでしょう?
> 一応 /usr/local/include と /usr/local/lib で,
> ls *gd* して出てきたファイルで日付の古いものを削除しましたが…。
> どなたかお助けいただけると幸いです。よろしくお願いいたします。
古いバージョンは /usr/includeに無いでしょうか?Solarisなので無いのでしょ
うか?当方はRedhat8のため、/usr/includeに既にありました。
ところでそのあたり(gdIOCtx)でbugがあるようで、コンパイルに失敗することが
あります。ここ(php-users)で聞こうかとも思ったのですが、ソースを修正する
ことでコンパイルが通ったので、ご参考までに書いておきます。
/usr/local/include/gd_io.h:
> typedef struct gdIOCtx {
> int (*getC)(struct gdIOCtx*);
> int (*getBuf)(struct gdIOCtx*, void*, int);
> void (*putC)(struct gdIOCtx*, int);
> int (*putBuf)(struct gdIOCtx*, const void*, int);
> int (*seek)(struct gdIOCtx*, const int);
> long (*tell)(struct gdIOCtx*);
> void (*gd_free)(struct gdIOCtx*);
> } gdIOCtx;
このようにmemberにgd_freeはありますが、freeはありません。従って、member
freeが無いというエラーが出たためgd_ctx.c, gd.cを以下のように修正しました。
'->free' これを '->gd_free' このように。
なお、php-4.2.2 及び php-4.3.0pre2です。
--
桜井 厚 <sakurai@penguin-club.org>