2016-12-20 1 views
0

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

+0

通常、最初のエラーメッセージではなく、最後のエラーメッセージで開始するのが最善です。宣言されていない識別子エラーがコンパイラーに付随してヘッダーファイルを見つけることができず、ヘッダーファイルをプロジェクトフォルダーにコピーすることは、この問題を処理するうえで貧弱な方法であることは驚くことではありません。代わりに、インクルードファイルの検索パスにヘッダのフォルダを追加する必要があります。どのようにするかはコンパイラごとに異なりますが、そのために '-I'オプションを使用するのは、コマンドラインコンパイラではかなり一般的です。 –

+0

ポインタJohnさんありがとう。私は上記の質問に最初のエラーを追加しました – Trond

答えて

0

を使用して試してみました。 jniの場所を追加すると、問題が解決するはずです。トラブルシューティングのガイドはここで役立ちます。参照:http://www.saxonica.com/saxon-c/index.xml#troubleshooting あなたがここにいくつかのオプションがあります:

1)jdkdir IEを含めるには、Makefileを編集します。-I $ jdkdir /含ま-I $ jdkdir// linuxの

2を含む)にだけgcj-をインストールjdk私はこの問題を解決するために見つけた

3)jni.hとjni_md.hファイルをSaxon/Cコードのディレクトリにコピーすることもできます。

関連する問題