0

phpizeCでPHP 拡張機能をコーディングしようとしましたが、実行した./configureところ、このエラーが発生しました

checking Whether extensionB is enabled... yes, shared
./configure: line 4171: syntax error near unexpected token `;'
./configure: line 4171: ;' 

エラーの原因となった行を特定するにはどうすればよいですか? このためのツールはありますか?

フォルダ構造

extensionB
         config.m4
         extensionB.c
         extensionB.h

config.m4

PHP_ARG_ENABLE(extensionB, Whether extensionB is enabled, [--enable-extensionB enable extensionB support])

if $PHP_EXTENSIONB != "no" then
    PHP_NEW_EXTENSION(extensionB,extensionB.c,$ext_shared);
fi

拡張子B.h

#ifndef PHP_EXTENSIONB_H
#define PHP_EXTENSIONB_H 1

#define PHP_EXTENSIONB_VERSION "1.0"
#define PHP_EXTENSIONB_EXTNAME "extensionB"

PHP_FUNCTION(extensionBFn1);

extern zend_module_entry extensionB_module_entry;
#define phpext_extensionB_ptr &extensionB_module_entry

#endif

拡張子B.c

#include "php.h"
#include "extensionB.h"

static function_entry extensionBFns[] = 
{
 PHP_FE(extensionBFn1,NULL)
 {NULL,NULL,NULL}
};

zend_module_entry extensionB_module_entry = 
{
    STANDARD_MODULE_HEADER,
    PHP_EXTENSIONB_EXTNAME,
    extensionBFns,
    NULL,NULL,NULL,NULL,NULL,
    PHP_EXTENSIONB_VERSION,
    STANDARD_MODULE_PROPERTIES
};

#ifdef COMPILE_DL_EXTENSIONB
    ZEND_GET_MODULE(extensionB)
#endif

PHP_FUNCTION(extensionB)
{ 
  RETURN_STRING("Extension B returns a string from Fn 1",1);
}

編集

コードを調べてみると、ファイル config.m4 に含まれている必要があることに気付きました

if test "$PHP_EXTENSIONB" != "no";
then

./configure ステージを通過しましたが、場所を表示するツールはありますか。gdbのような?

4

1 に答える 1

1

これはGDBのようなものではありませんが、configure.logファイル:失敗したテストを検索し、その周りの行で、何が実行され、何が失敗したかを正確に示します.

于 2013-03-15T16:30:53.223 に答える