MacOS 文图拉 13.6.6
我使用 homebrew 安装了 php 8.1 版本。做完之后立刻
pecl install xdebug
我收到以下错误:
In file included from /private/tmp/pear/temp/xdebug/xdebug.c:21:
In file included from /private/tmp/pear/temp/xdebug/src/lib/php-header.h:19:
In file included from /usr/local/Cellar/[email protected]/8.1.27_1/include/php/main/php.h:31:
In file included from /usr/local/Cellar/[email protected]/8.1.27_1/include/php/Zend/zend.h:409:
/usr/local/Cellar/[email protected]/8.1.27_1/include/php/Zend/zend_operators.h:490:10: error: 'asm goto' constructs are not supported yet
__asm__ goto(
^
/usr/local/Cellar/[email protected]/8.1.27_1/include/php/Zend/zend_operators.h:553:10: error: 'asm goto' constructs are not supported yet
__asm__ goto(
^
/usr/local/Cellar/[email protected]/8.1.27_1/include/php/Zend/zend_operators.h:623:10: error: 'asm goto' constructs are not supported yet
__asm__ goto(
^
/usr/local/Cellar/[email protected]/8.1.27_1/include/php/Zend/zend_operators.h:733:10: error: 'asm goto' constructs are not supported yet
__asm__ goto(
^
4 errors generated.
make: *** [xdebug.lo] Error 1
ERROR: `make' failed
这与这个问题非常相似,它指向这个bug报告,它说我必须对PHP和Xdebug使用相同的编译器。好的,我明白了这个概念,但是有关于如何实现这一目标的详细信息吗?我不知道 Mac 上(或任何地方,真的)上的 C 编译器的方法。如何使
brew
和 pecl
使用相同的编译器?
信息:
$ pecl -V
PEAR Version: 1.10.14
PHP Version: 8.1.27
Zend Engine Version: 4.1.27
Running on: Darwin OLFs-iMac.local 22.6.0 Darwin Kernel Version 22.6.0: Mon Feb 19 19:48:53 PST 2024; root:xnu-8796.141.3.704.6~1/RELEASE_X86_64 x86_64
我尝试从源代码编译 PHP,认为这会以某种方式工作,但 Xdebug 期望 PHP 通过 Homebrew 安装,所以这不起作用。
我将 MacOS 更新为 Ventura,认为我需要更新的 XCode 内容,尽管 Apple 仍然不允许我下载最新的 Xcode。因此,我从 Apple 开发者网站下载并安装了“CLI tools for XCode 14.3.1”。
每次我都会确保brew uninstall php并检查php和pecl是否已从我的系统中删除,然后再尝试再次安装。
我将不胜感激任何帮助,谢谢!
通过在 /usr/local/Cellar/php/
7.4.11/include/php/Zend/zend_operators.h:508 中设置
# define ZEND_USE_ASM_ARITHMETIC 0
来禁用 asm goto 运算符
注意:将 7.4.11 替换为您的 PHP 版本