[PHP-users 10282] Re: GD2.0.1のインストールについて

Naomasa Numajiri php-users@php.gr.jp
Sat, 21 Sep 2002 18:42:56 +0900


こんにちは、

回答ではないですが、メッセージの意味を参考までに

; make[3]: Entering directory `/usr/local/src/php-4.2.2/ext/gd'

たしか、makeの中で更にmakeを実行した時に、このようなメッセージが
表示されると記憶しています。

; /bin/sh /usr/local/src/php-4.2.2/libtool --silent --mode=compile gcc  -I. -I/usr/local/src/php-4.2.2/ext/gd -I/usr/local/src/php-4.2.2/main -I/usr/loc
; al/src/php-4.2.2 -I/usr/include/apache -I/usr/local/src/php-4.2.2/Zend -I/usr/local/include -I/usr/local/include/freetype2/freetype -I/usr/local/src/g
; d-2.0.1/ -I/usr/local/src/php-4.2.2/ext/mysql/libmysql -I/usr/local/pgsql/include -I/usr/local/src/php-4.2.2/ext/xml/expat  -DLINUX=22 -DUSE_HSREGEX -
; DUSE_EXPAT -I/usr/local/src/php-4.2.2/TSRM -g -O2 -prefer-pic  -c gd.c

たぶんこんな感じでしょう
* /bin/sh -- シェルスクリプトlibtoolを実行
* /usr/local/src/php-4.2.2/libtool -- --silent,--mode=compileというオプションでgccを実行
* gcc -- 
	ヘッダーファイル(ソース内のinclude "xxx.h"の部分)の検索パス
		-I.
		-I/usr/local/src/php-4.2.2/ext/gd
		-I/usr/local/src/php-4.2.2/main
		-I/usr/local/src/php-4.2.2
		-I/usr/include/apache
		-I/usr/local/src/php-4.2.2/Zend
		-I/usr/local/include
		-I/usr/local/include/freetype2/freetype
		-I/usr/local/src/gd-2.0.1/
		-I/usr/local/src/php-4.2.2/ext/mysql/libmysql
		-I/usr/local/pgsql/include
		-I/usr/local/src/php-4.2.2/ext/xml/expat
	他のオプションは「man gcc」で調べてみてください。で、浅井さん
	なりの理解を書いてみてください。

; gd.c: In function `zm_startup_gd':

演習1
これは英単語の意味を調べれば分かると思います。

; gd.c:303: `gdArc' undeclared (first use in this function)
; gd.c:303: (Each undeclared identifier is reported only once
; gd.c:303: for each function it appears in.)

演習2
「gc.cというファイルの303行目に関するメッセージ」という意味です。
メッセージの内容は英単語の意味を調べれば分かるでしょう。

; gd.c:304: `gdPie' undeclared (first use in this function)
; gd.c:305: `gdChord' undeclared (first use in this function)
; gd.c:306: `gdNoFill' undeclared (first use in this function)
; gd.c:307: `gdEdged' undeclared (first use in this function)
; gd.c: In function `zif_imagecreatetruecolor':
; gd.c:588: warning: assignment makes pointer from integer without a cast
; gd.c: In function `zif_imagecolorat':
; gd.c:1626: structure has no member named `tpixels'
; make[3]: *** [gd.lo] Error 1
; make[3]: Leaving directory `/usr/local/src/php-4.2.2/ext/gd'

ここである階層でのmakeの実行が終わり、呼び出し元のmakeの実行に
戻ったはずです。たぶん「3」というのが階層の深さなんだと思います。

演習3
(エラー?)メッセージの意味は、英語ですが(少なくとも英語圏の人にさえ
意味不明なメッセージにするはずはないので)読む意思を持って眺めれば
ちゃんと理解できることだと思います。

英単語が分からない時はちゃんと辞書で調べましょう。
知識が足りない分は根気でカバーしましょう。

演習4
エラーメッセージの意味を理解したら、その意味に従って自分なりに仮説を
たてて、その仮説があっているか、自分の手を動かして自分の目で確認して
行きましょう。

# 演習5
# 解決策を見つけても、年号の丸暗記のように終わらせるのではなく、
# わざと間違ったことをしてみて、どんなときにどんなエラーが出るのか
# 確認してみましょう。そして間違った操作と結果の因果関係を理解しましょう。


以上、参考までに。

-- ぬ