好看的站点千篇一律,有趣的U站万里挑

PHP内核介绍及扩展开发指南——附录A.Extension的编译:Makefile

一、基础知识

PHP内核介绍及扩展开发指南——基础知识:PHP变量的存储

PHP内核介绍及扩展开发指南——基础知识:HashTable结构

二、Extensions 的编写

PHP内核介绍及扩展开发指南——Extensions 的编写:Hello World

PHP内核介绍及扩展开发指南——Extensions 的编写:使用参数

PHP内核介绍及扩展开发指南——Extensions 的编写:返回值

PHP内核介绍及扩展开发指南——Extensions 的编写:启动和终止函数、调用PHP函数

PHP内核介绍及扩展开发指南——Extensions 的编写:访问PHP变量

PHP内核介绍及扩展开发指南——Extensions 的编写:输出信息

PHP内核介绍及扩展开发指南——高级主题

 

Extension的编译是比较简单的,下面是个示例Makefile:

 

# 扩展搜索目录,模块被放到这里才能被找到和加载

# 可以从php.ini中的extension_dir命令获取该值

PHP_EXT_HOME=/home/wiki/php5/lib/php/extensions/

# PHP源代码路径

PHP_SRC=/home/wiki/wikienv/install/php-5.2.3

INCLUDE=-I$(PHP_SRC) -I$(PHP_SRC)/main -I$(PHP_SRC)/TSRM -I$(PHP_SRC)/Zend

CC=gcc

 

all: first_module.so

 

first_module.so: first_module.o

    $(CC) -shared -rdynamic -o first_module.so first_module.o

 

# 注意不要忘了“-DCOMPILE_DL_FIRST_MODULE=1”,否则不会导出get_module()

first_module.o: first_module.c

    $(CC) -fpic -DCOMPILE_DL_FIRST_MODULE=1 $(INCLUDE) -c first_module.c

 

clean:

    rm -fr *.so *.o

 

install: first_module.so

    cp -fp first_module.so $(PHP_EXT_HOME)

这将创建一个可动态加载的Extension模块,如果想将Extension静态编译进PHP,就需要使用PHP本身的编译系统,这里不作介绍。

另外,Zend提供了一个小脚本来简化创建和编译Extension的过程,可以在《PHP手册》的相关章节找到其使用方法。

目前,Zend正在开发一个更加完善和标准的Extension生成工具,可以在这里找到它:http://pecl.php.net/package/PECL_Gen

下载专辑 

PHP内核介绍及扩展开发指南.doc

 

编写 PHP Extension

zhangdongjin@baidu.com

 

赞(0) 打赏
未经允许不得转载:U站 » VBA控件教程:调试类模块

U站丨好看的站点千篇一律,有趣的U站万里挑一

联系我们联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏