config.m4简述

PHP_ARG_WITH

开启扩展,此种开启方法表明此扩展需要第三方库的支持,通过设定变量值,来指定第三方扩展的路径.

PHP_ARG_WITH((1)pcap, (2)for pcap support,
(3)Make sure that the comment is aligned:
--with-pcap             Include pcap support)

第一个参数用来指定编译时参数名称

./configure --with-pcap=path

因为第一个参数是pcap,所以参数名称是with-pcap,其值是可选的,可以在config.m4中用$PHP_PCAP获得值(这个例子里的值是path),如果没有设置,$PHP_PCAP默认值为yes.

第二个参数用来指定编译提示

./configure --with-pcap=path
...
...
checking for pcap support

第三个参数用来指定编译帮助

./configure --help
...
Make sure that the comment is aligned:
--with-pcap Include pcap support
...


PHP_CHECK_LIBRARY

用于验证我们需要的第三方库文件是有效的.

PHP_CHECK_LIBRARY(pcap,pcap_lib_version,
   [
     PHP_ADD_LIBRARY_WITH_PATH(pcap, $PCAP_DIR/lib, PCAP_SHARED_LIBADD)
     AC_DEFINE(HAVE_PCAPLIB,1,[ ])
   ],[
     AC_MSG_ERROR([wrong pcap lib version or lib not found])
   ],[
    -L$PCAP_DIR/lib -lpcap
   ])

需要五个参数

  • 库的名称.在我们的例子中编译时将被转换为-lpcap.
  • 试图在我们的库中找到函数的名字.
  • 找到该函数后采取的行动.
  • 没找到该函数采取的行动.
  • 设置库定义.

PHP_NEW_EXTENSION

PHP_NEW_EXTENSION(pcap, pcap.c test.c, $ext_shared,, -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1)

需要大量的参数,常用的只有三个:

  • 扩展的名称
  • 用于构建扩展的源或文件的列表
  • 扩展应该动态加载还是静态编译
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。