PHP7 カーネル解析 11 モジュール拡張

不言
リリース: 2023-03-23 18:16:01
オリジナル
1151 人が閲覧しました

この記事の内容は、PHP7 カーネル解析 11 のモジュール拡張機能に関するものです。必要な友達は参考にしてください。

1. このスクリプトは主に

(b).php-configを生成します: このスクリプトは主にPHPインストール情報を取得するために使用されます

(c).phpize: 設定ファイルを生成するために使用されます


2. 拡張機能を記述するための基本的な手順

a. ext ディレクトリの ext_skel スクリプトを使用して拡張機能の基本フレームワークを生成します。b. config.m4 構成を変更します。コンパイル構成パラメーターを設定し、依存関係ライブラリ/関数のチェックなどを行います。 .;

./ext_skel --extname=wu
ログイン後にコピー
PHP_ARG_WITH(arg_name,check message,help info): 定义一个--with-feature[=arg]这样的编译参数,参数分别为
参数名、执行./configure是展示信息、执行--help时展示信息

$PHP_参数名:获取对应的参数值
ログイン後にコピー
PHP_ARG_ENABLE(arg_name,check message,help info): 定义一个--enable-feature[=arg]或--disable-feature参
数,--disable-feature等价于--enable-feature=no,这个宏与PHP_ARG_WITH类似,通常情况下如果配置的参数需
要额外的arg值会使用PHP_ARG_WITH,而如果不需要arg值,只用于开关配置则会使用PHP_ARG_ENABLE。
ログイン後にコピー
./configure时输出结果,其中error将会中断configure执行

AC_MSG_CHECKING(message)
AC_MSG_RESULT(message)
AC_MSG_ERROR(message)
ログイン後にコピー
AC_DEFINE(variable, value, [description]): 定义一个宏,比如:AC_DEFINE(IS_DEBUG, 1, []),执行autoheader
时将在头文件中(config.h)生成:#define IS_DEBUG 1。
ログイン後にコピー
PHP_ADD_INCLUDE(path): 添加include路径,即:gcc -Iinclude_dir
ログイン後にコピー

c. 拡張機能を作成して実装する関数: PHP 拡張機能と PHP が提供する API に従って関数を作成します。
PHP_CHECK_LIBRARY(library, function [, action-found [, action-not-found ]]): 检查依赖的库中是否存在需要
的function,action-found为存在时执行的动作,action-not-found为不存在时执行的动作
ログイン後にコピー
d を作成した後、実行します。 phpize スクリプトを使用して、configure およびその他の構成ファイルを生成します。
PHP_ADD_LIBRARY_WITH_PATH($LIBNAME, $XXX_DIR/$PHP_LIBDIR, XXX_SHARED_LIBADD): 添加链接库
ログイン後にコピー
e. コンパイルとインストール: ./configure、make、make install を実行し、拡張された .so パスを php.ini に追加します。
PHP_NEW_EXTENSION(extname, sources [, shared]): 注册一个扩展,添加扩展源文件,确定此扩展是动态库还是静态库,每个扩展的config.m4中都需要通过这个宏完成扩展的编译配置。
ログイン後にコピー
relatedの推奨事項:php7カーネル分析の10°php7カーネル分析9メモリ管理9 8つのクラスのカーネル分析

以上がPHP7 カーネル解析 11 モジュール拡張の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!