2012-02-03 9 views
0

PHPのZendエンジンコードでは、以下のような行がヘッダファイルにあります。GCCが非標準呼び出し規約 "ZEND_API"について不平を言いました

ZEND_API char *zend_strndup(const char *s, unsigned int length) ZEND_ATTRIBUTE_MALLOC; 

プロのC/C++プログラミングには初めてです。私はGCCを使用して、このパッケージでCファイルをコンパイルしようとすると

は、私はgccがZEND_APIについてcomplaingているように見えますコマンドgcc -I./ -I../TSRM zend_language_*.c

を試してみました

zend_alloc.h:55: error: expected =, ,, ;, asm or __attribute__ before char 

のようなエラーが発生します。 ZEND_APIは何を示していますか?誰もが私はなぜこのエラーが発生するのを助けることができますか?

SVN repository where the files are located.

答えて

3

これらのファイルは、PHPインタプリタの一部であり、それとは別にコンパイルすることを意図したものではありません。 (例えば、GCC 4.0以降)、および他のコンパイラで何にもそれをサポートするシステム上の

__attribute__ ((visibility("default"))) 

:configureスクリプトはZEND_APIマクロを定義することになっています。

PHPをビルドしようとしているだけの場合は、php.netからソースバンドル全体をダウンロードし、configure/makeをビルドしてください。ビルドプロセスは複雑であり、手動で実行することは明白ではありません。

+0

返信いただきありがとうございます。実際には、私はちょうどzend言語パーサーを構築し、それをPHPの構文木で動作させるために使用したいと思います。それは可能か/推奨されていますか?パッケージの一部だけをコンパイルする方法はありますか? – Vamsi

関連する問題