[PHP-users 10034] Re: Call to undefined function: xslt_create()

ITO Akihiro php-users@php.gr.jp
Thu, 12 Sep 2002 10:48:06 +0900


伊藤です.
長くなって申し訳ありませんが,もう一度整理させてください.

> XSLTプロセッサの組み込みがどうしてもできないので,似たような現象を解
> 決された方がいらっしゃいましたら,教えてください.

> エラーは,
> Fatal error: Call to undefined function: xslt_create() 
> です.
> 共有モジュールが組み込まれていないようです.
> 
> 環境は,
> Red Hat Linux 7.2
> Apache1.3.26
> PHP4.2.2
> PostgreSQL 7.2
> です.

上記環境で正常に動作しているところからスタートしました.

環境構築の手順は,青マンモス本に従い,

$cd expat-1.95.4
$./configure
$make
$make install

$cd libiconv-1.8
$./configure
$make
$make install

$cd Sablot-0.95
$patch -p2 < ./Sablot-0.95-PHP.patch
$./configure
$make
$make install

$cd php-4.2.2
$patch -p0 < ./PHP-sablot-0.95.patch
$make distclean
$./configure
--with-apxs=/usr/local/apache/bin/apxs
--enable-mbstring
--enable-mbstr-enc-trans
--with-pgsql=/usr/local/pgsql/
--enable-trans-sid
--enable-memory-limit
--with-db
$make
$make install

ここまでは問題なし.
apacheを再起動しても正常に動作します.

$cd php-4.2.2
$make distclean
$./configure
--enable-xslt
--with-xslt-sablot=/usr/local
--with-iconv-dir=/usr/local
--with-expat-dir=/usr/local
$make

の結果が,

/bin/sh /usr/local/src/php-4.2.2/libtool --silent --mode=link gcc -I. -I/usr/loc
al/src/php-4.2.2/ -I/usr/local/src/php-4.2.2/main -I/usr/local/src/php-4.2.2 -I/
usr/local/src/php-4.2.2/Zend -I/usr/local/src/php-4.2.2/ext/mysql/libmysql -I/us
r/local/include  -I/usr/local/src/php-4.2.2/TSRM -g -O2   -o php -export-dynami
stub.lo libphp4.la
/usr/local/lib/libsablot.so: undefined reference to `libiconv_open'
/usr/local/lib/libsablot.so: undefined reference to `libiconv_close'
/usr/local/lib/libsablot.so: undefined reference to `libiconv'
collect2: ld returned 1 exit status
make[1]: *** [php] Error 1
make[1]: Leaving directory `/usr/local/src/php-4.2.2'
make: *** [all-recursive] Error 1

です.

そこで,
$nm libsablot.so | grep iconv
してみると,
    U libiconv
    U libiconv_close
    U libiconv_open
と,やはりちゃんとリンクできてないようです.
Sablotのリンク時には,-liconvはついていますし,
Sablotのコンパイル時に,
$ ./configure --with-iconv
もしくは,
$ ./configure --with-iconv-dir=/usr/local
としてからmakeしてもだめでした.

sablot と iconv をちゃんとリンクさせるためには,何か足りないのでしょ
うか?
--
ITO Akihiro / Nagoya Japan
akit@d-tv.co.jp
http://www.d-tv.co.jp/
http://www.d-tv.co.jp/~akit/seven/