Ubuntu 16.04でSaxon/CをPHP用にビルドしようとすると、makeコマンドを実行した後でたくさんのことが起こります。PHP用Saxon/Cをビルドする際のエラー
これは最初のエラーです:
/bin/bash /usr/lib/Saxonica/Saxon-HEC/Saxon.C.API/libtool --mode=compile g++ -I
. -I/usr/lib/Saxonica/Saxon-HEC/Saxon.C.API -DPHP_ATOM_INC -I/usr/lib/Saxonica/S
axon-HEC/Saxon.C.API/include -I/usr/lib/Saxonica/Saxon-HEC/Saxon.C.API/main -I/u
sr/lib/Saxonica/Saxon-HEC/Saxon.C.API -I/usr/include/php/20151012 -I/usr/include
/php/20151012/main -I/usr/include/php/20151012/TSRM -I/usr/include/php/20151012/
Zend -I/usr/include/php/20151012/ext -I/usr/include/php/20151012/ext/date/lib -
DHAVE_CONFIG_H -g -O2 -c /usr/lib/Saxonica/Saxon-HEC/Saxon.C.API/php_saxon.cp
p -o php_saxon.lo
libtool: compile: g++ -I. -I/usr/lib/Saxonica/Saxon-HEC/Saxon.C.API -DPHP_ATOM_
INC -I/usr/lib/Saxonica/Saxon-HEC/Saxon.C.API/include -I/usr/lib/Saxonica/Saxon-
HEC/Saxon.C.API/main -I/usr/lib/Saxonica/Saxon-HEC/Saxon.C.API -I/usr/include/ph
p/20151012 -I/usr/include/php/20151012/main -I/usr/include/php/20151012/TSRM -I/
usr/include/php/20151012/Zend -I/usr/include/php/20151012/ext -I/usr/include/php
/20151012/ext/date/lib -DHAVE_CONFIG_H -g -O2 -c /usr/lib/Saxonica/Saxon-HEC/Sax
on.C.API/php_saxon.cpp -fPIC -DPIC -o .libs/php_saxon.o
/usr/lib/Saxonica/Saxon-HEC/Saxon.C.API/php_saxon.cpp:454:29: error: macro "RETURN_STRING" passed 2 arguments, but takes just 1
php_saxon.cpp:3297:40: error: ‘xdmAtomicValue_create_handler’ was not declared in this scope
xdmAtomicValue_ce->create_object = xdmAtomicValue_create_handler;
上記のエラーメッセージは、多くの最後のものです。
最初のmakeは、コンパイラがjni.hファイルを見つけられなかったときに停止されました。 (?それは間違っているかもしれない)私は
フォルダにヘッダ・ファイルをコピーすると、エラーメッセージ:
Saxon.C.API/SaxonProcessor.h:10:17: fatal error: jni.h: No such file or directory
コンパイラがjni_md.hを見つけられませんでしたときに、第2の試みは停止 - 再び私は、ファイルをコピーしますフォルダに移動します。
php_saxon.cpp:5:
./jni.h:45:20: fatal error: jni_md.h: No such file or directory
これを作成する方法については、歓迎します。私はそれが私の知識不足であり、素晴らしいソフトウェアではないと確信しています。
私は、このページの指示に従ってています: http://www.saxonica.com/saxon-c/doc/html/index.html を、ジョンによって述べたように、私もphpize5.6とphpize7.0
通常、最初のエラーメッセージではなく、最後のエラーメッセージで開始するのが最善です。宣言されていない識別子エラーがコンパイラーに付随してヘッダーファイルを見つけることができず、ヘッダーファイルをプロジェクトフォルダーにコピーすることは、この問題を処理するうえで貧弱な方法であることは驚くことではありません。代わりに、インクルードファイルの検索パスにヘッダのフォルダを追加する必要があります。どのようにするかはコンパイラごとに異なりますが、そのために '-I'オプションを使用するのは、コマンドラインコンパイラではかなり一般的です。 –
ポインタJohnさんありがとう。私は上記の質問に最初のエラーを追加しました – Trond