2

我目前正在尝试通过 PECL 为 PHP 构建一个扩展。

/Applications/MAMP/bin/php/php5.4.39/bin/pecl install memcached

我正在使用 OS X 和 MAMP,所以我收到了这个错误。

/Applications/MAMP/bin/php/php5.4.39/include/php/Zend/zend.h:51:11:致命错误:找不到“zend_config.h”文件

由于 MAMP 发货时没有任何 PHP 头文件,因此我必须手动获取它们。于是我就到这里https://github.com/php/php-src/releases/tag/php-5.4.39下载了源码。

我将其提取到并将文件夹文件夹/Applications/MAMP/bin/php/php5.4.39/include/重命名为并尝试更改为文件夹。php-5php-src-PHP-5.4.39php/Applications/MAMP/bin/php/php5.4.39/include/php

我尝试使用./configure. 但是没有找到。我只找到了一个configure.ln,据我所知,它是用于 autoconf 的。于是我跑了autoconf。Autoconf 因以下错误而崩溃:

configure.in:2:错误:可能未定义的宏:dnl

我很困惑。./buildconf我找到了告诉我以下内容的脚本:

您不应该在发布包中运行 buildconf。使用 buildconf --force 覆盖此检查。

我强迫它,我们走了:一个./configure脚本终于存在了。

我检查了 php.net 站点是否有相同的版本,因为我认为上次我这样做时还没有出现这种混乱。

所以我下载了这个: http: //php.net/get/php-5.4.39.tar.bz2/from/a/mirror

它有./configure剧本。

现在我的问题是:为什么 php.net 上的版本和 GitHub 上的版本不同?如果不使用./buildconf脚本,我应该如何获得一个./configure不使用./buildconf显然不应该在发布版本中使用的脚本?

谢谢 :)

4

1 回答 1

1

GitHub 包含 PHP 开发版本的镜像。开发版本通常没有configure脚本,因为每次任何自动工具输入文件更改时都必须重新生成它。而且这些文件在开发阶段往往会发生变化。

您可以在php 网站上阅读有关如何使用开发版本和buildconf脚本的说明。

带有生成脚本的最终用户发布版本configure应直接从php.net下载。

于 2015-04-28T19:55:08.800 回答