【问题标题】:php extension compiles with newer API version than my PHPphp 扩展使用比我的 PHP 更新的 API 版本编译
【发布时间】:2014-03-05 15:47:50
【问题描述】:

这让我发疯:我正在尝试为一个库 (www.phah.org) 编译一个 php 扩展,它编译得很好,但是当我尝试使用 php 启用加载它时,我收到以下警告 (这实际上是 make test 的输出):

PHP Warning:  PHP Startup: pHash: Unable to initialize module
Module compiled with module API=20100525
PHP    compiled with module API=20090626

令人困惑的是,当我在编译之前执行 phpize 时,它​​会显示正确的 API 版本:

$ phpize
Configuring for:
PHP Api Version:         20090626
Zend Module Api No:      20090626
Zend Extension Api No:   220090626

但它仍然使用 20100525 (php 5.4) 而不是 220090626 (php 5.3) 编译。 我花了很长时间搜索,但我只发现 ppl 有相反的问题(为旧版本的 php 编译扩展)。

有什么提示吗?

【问题讨论】:

  • 这里是我安装的php包列表:php-pear 5.3.10-1ubuntu3.9, php5 5.3.10-1ubuntu3.9, php5-cli 5.3.10-1ubuntu3.9, php5-common 5.3.10-1ubuntu3.9、php5-curl 5.3.10-1ubuntu3.9、php5-dev 5.3.10-1ubuntu3.9、php5-fpm 5.3.10-1ubuntu3.9、php5-gd 5.3.10 -1ubuntu3.9,php5-mcrypt 5.3.5-0ubuntu1,php5-mysql 5.3.10-1ubuntu3.9

标签: php-extension


【解决方案1】:

好吧,我想通了:您可以使用https://github.com/sdepold/pHash 的 0.9.4 版本,或者从 0.9.6 派生的这个版本,而不是使用 0.9.6 源附带的 php 绑定, https://github.com/Alexis2004/php-phash 两者都编译得很好,没有 API 版本问题。看起来它显然不是来自 Zend。

【讨论】:

  • 我仍然收到github.com/Alexis2004/php-phash 的以下错误:注意:未定义变量:第 1345 行 /usr/share/php/CodeGen/PECL/Element/Function.php 中的 linedef [... ] 配置:警告:如果您想重新生成 PHP 解析器,您将需要 re2c 0.13.4 或更高版本。 [...] 检查 pHash.h... 是检查 audiophash.h 可用性... 是 检查 audiophash.h 存在... 是 检查 audiophash.h... 是 检查 -lpHash 中的 ph_texthash...没有配置:错误:错误的 pHash 库版本或未找到库
猜你喜欢
  • 2011-05-06
  • 1970-01-01
  • 2011-05-21
  • 1970-01-01
  • 2012-01-25
  • 2023-03-29
  • 2016-03-22
  • 2017-03-21
  • 1970-01-01
相关资源
最近更新 更多