【问题标题】:Fatal error: 'ext/standard/php_smart_str.h' file not found致命错误:找不到“ext/standard/php_smart_str.h”文件
【发布时间】:2019-07-28 05:08:30
【问题描述】:

我下载了 MacOS Mojave,并在 2012 年中期的 macbook Pro 上进行了全新安装。使用命令行工具安装 XCode。让原生 Apache 和 PHP 工作,使用 PEARL、PECL 和 ICU 的最新版本(63.1),供以后使用 Intl 扩展。

但是每次安装 Intl 的尝试都失败了。在干净安装之前,我在笔式驱动器上找到了一个 intl.so 并使用了 ICU 版本 54,但这并不是让开发环境工作的最佳方式。

最后,由于找不到 php_smart_str.h 文件,我被 PECL 卡住了,无法完成 Intl 的安装。

我也重新安装了开发者工具的头文件:

$ sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /

有没有 Homebrew 的开发环境?

当我在终端运行时:

sudo pecl install intl

返回以下内容:

/private/tmp/pear/install/intl/intl_error.h:24:10: fatal error: 'ext/standard/php_smart_str.h' file not found

在创建 libtool 并运行之后:make。

【问题讨论】:

  • 先尝试运行sudo pecl update-channels。 (src)
  • 谢谢@aynber,但我也试过了,但没有用,同样的错误。

标签: php macos cakephp pecl intl


【解决方案1】:

好吧,我真的不想使用自制软件,而是只使用预装在 Mac OS Mojave 的 MacBook Pro 上的原生 apache 和 php,试图为 CakePHP 的使用保持最干净的开发环境。

因此,在 Pecl 官方网站 (https://pecl.php.net/package/intl) 上,很明显 Intl 包不再维护并已被取代。从 PHP 5.3.0 开始,您不需要使用 Pecl 来安装 intl 扩展,它与 PHP 捆绑在一起。

但是,在 Mac OS Mojave 上本地安装 PHP 7.1.24 时缺少它。

然后我从 php.net 下载了 PHP 7.1,安装了 XCode 命令行工具、ICU (http://site.icu-project.org/)、Autoconf,重新安装了开发者工具头文件,最后使用 phpize 安装了 Intl 扩展。

重要提示:您必须禁用 SIP。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-04
    • 1970-01-01
    • 2020-10-02
    • 2015-01-20
    • 2014-12-21
    • 2013-12-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多