php静态库文件,PHP7使用静态库扩展

基础代码

这个扩展,我们将在say扩展上增加show_site_ar()。say扩展相关代码大家请看这篇博文。PHP7扩展开发之hello word 文中已经详细介绍了如何创建一个扩展和提供了源码下载。

代码实现

建立lib库

增加hello.h文件。代码如下:

增加hello.c文件。代码如下:

然后使用以下命令生成lib库(动态库)文件:

这样在当前目录下就会生成一个hello.so的动态库文件。不同操作系统动态库的扩展名可能不一样。如 windows下是dll,mac下是 dylib,linux下是so。

然后把ar -r hello.a hello.o拷贝到/usr/local/lib/目录下,命名为hello.a

把hello.h拷贝到/usr/local/include/目录下。

修改config.m4文件

增加扩展对动态库的依赖。主要增加以下几行代码:

修改Makefile文件

执行phpize命令后,会生成Makefile文件。修改文件如下:

SAY_SHARED_LIBADD = -Wl,-rpath,/usr/local/lib/ -L/usr/local/lib/ -lhello

修改为

SAY_SHARED_LIBADD = -Wl,-rpath,/usr/local/lib/ -L/usr/local/lib/ /usr/local/lib/hello.a

即,把-lhello修改为了具体的静态库路径。

编写扩展代码

增加hello.h的引用。

增加show_site()方法。代码如下:

php调用结果

执行结果

代码解读

PHP_ADD_LIBRARY_WITH_PATH 是用于指定lib库的名字,地址等信息。第一个参数是名字,第二个参数是地址。

在say.c文件中增加lib库的头文件。使用#include "hello.h"。

在扩展代码中就像调用其他内核提供的方法一样,去调用lib库中的方法。

关于config.m4文件的说明请查看 http://php.net/manual/zh/internals2.buildsys.configunix.php

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值