pecl 在 MacOS 上安装 xdebug 失败,并出现错误“asm goto”结构尚不支持

问题描述 投票:0回答:1

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是否已从我的系统中删除,然后再尝试再次安装。

我将不胜感激任何帮助,谢谢!

php macos xdebug pecl
1个回答
0
投票

通过在 /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 版本

© www.soinside.com 2019 - 2024. All rights reserved.