gpt4 book ai didi

php-7 - 在 php7.0 上安装 ncurses 扩展

转载 作者:行者123 更新时间:2023-12-05 00:54:51 24 4
gpt4 key购买 nike

我尝试安装 ncurses php7.0 的扩展,但我收到此错误

/bin/bash /tmp/pear/download/ncurses-1.0.2/libtool --mode=compile cc  -I. -I/tmp/pear/download/ncurses-1.0.2 -DPHP_ATOM_INC -I/tmp/pear/download/ncurses-1.0.2/include -I/tmp/pear/download/ncurses-1.0.2/main -I/tmp/pear/download/ncurses-1.0.2 -I/usr/include/php/20151012 -I/usr/include/php/20151012/main -I/usr/include/php/20151012/TSRM -I/usr/include/php/20151012/Zend -I/usr/include/php/20151012/ext -I/usr/include/php/20151012/ext/date/lib  -DHAVE_CONFIG_H  -g -O2   -c /tmp/pear/download/ncurses-1.0.2/ncurses.c -o ncurses.lo 
libtool: compile: cc -I. -I/tmp/pear/download/ncurses-1.0.2 -DPHP_ATOM_INC -I/tmp/pear/download/ncurses-1.0.2/include -I/tmp/pear/download/ncurses-1.0.2/main -I/tmp/pear/download/ncurses-1.0.2 -I/usr/include/php/20151012 -I/usr/include/php/20151012/main -I/usr/include/php/20151012/TSRM -I/usr/include/php/20151012/Zend -I/usr/include/php/20151012/ext -I/usr/include/php/20151012/ext/date/lib -DHAVE_CONFIG_H -g -O2 -c /tmp/pear/download/ncurses-1.0.2/ncurses.c -fPIC -DPIC -o .libs/ncurses.o
/tmp/pear/download/ncurses-1.0.2/ncurses.c:36:37: error: unknown type name ‘zend_rsrc_list_entry’
static void ncurses_destruct_window(zend_rsrc_list_entry *rsrc TSRMLS_DC)
^
/tmp/pear/download/ncurses-1.0.2/ncurses.c:45:36: error: unknown type name ‘zend_rsrc_list_entry’
static void ncurses_destruct_panel(zend_rsrc_list_entry *rsrc TSRMLS_DC)
^
/tmp/pear/download/ncurses-1.0.2/ncurses.c: In function ‘zm_startup_ncurses’:
/tmp/pear/download/ncurses-1.0.2/ncurses.c:247:57: error: ‘ncurses_destruct_window’ undeclared (first use in this function)
le_ncurses_windows = zend_register_list_destructors_ex(ncurses_destruct_window, NULL, "ncurses_window", module_number);
^
/tmp/pear/download/ncurses-1.0.2/ncurses.c:247:57: note: each undeclared identifier is reported only once for each function it appears in
/tmp/pear/download/ncurses-1.0.2/ncurses.c:249:56: error: ‘ncurses_destruct_panel’ undeclared (first use in this function)
le_ncurses_panels = zend_register_list_destructors_ex(ncurses_destruct_panel, NULL, "ncurses_panel", module_number);
^
Makefile:194: ошибка выполнения рецепта для цели «ncurses.lo»
make: *** [ncurses.lo] Ошибка 1
ошибка выполнения рецепта для цели «ncurses.lo»就像 error in process run target

最佳答案

有一个补丁可以针对 php 的 ncurses v1.0.2 进行修改,以便针对 php 7 进行修改。一旦应用了补丁,就可以构建和安装扩展。

所需的软件包(这些是 Debian 软件包名称):php-cliphp-pearphp-devlibncurses5-devncurses-doclibncursesw5-dev
以下所有命令都假定用户以 root 身份登录。打包命令是特定于 Debian 的。这些已经在 Debian Stretch 下进行了测试。

apt-get install php-cli php-pear php-dev libncurses5-dev ncurses-doc libncursesw5-dev

使用 pecl获得 ncurses 的 v1.0.2,以及 wget获取补丁(如 ncurses.patch )。
cd /root
pecl download ncurses
mkdir /root/ncurses
cd /root/ncurses
tar -xvzf /root/ncurses-1.0.2.tgz
wget "https://bugs.php.net/patch-display.php?bug_id=71299&patch=ncurses-php7-support-again.patch&revision=1474549490&download=1" -O ncurses.patch

重命名 ncurses-1.0.2目录到 ncurses-php5因为这是补丁期望的名称,并应用补丁。
mv ncurses-1.0.2 ncurses-php5
patch --strip=0 --verbose --ignore-whitespace <ncurses.patch

构建 ncurses 扩展。这将构建 ncurses.so文件在 /root/ncurses/ncurses-php5/modules .
cd ncurses-php5
phpize
./configure
make

安装 ncurses 扩展。这将放置 ncurses.so文件在 /usr/lib/php/20151012 .此位置在其他发行版中可能有所不同。
make install

制作 ncurses.so php 7 可用的扩展名。这些文件位置在其他发行版中可能不同。
cat <<'EndOfHereDoc' >/etc/php/7.0/mods-available/ncurses.ini
; configuration for php ncurses module
; priority=20
extension=ncurses.so
EndOfHereDoc
ln --symbolic /etc/php/7.0/mods-available/ncurses.ini /etc/php/7.0/cli/conf.d/20-ncurses.ini

验证 ncurses 确实可用。
php -m | grep ncurses

一旦一切正常, /root/ncurses目录, /root/ncurses-1.0.2.tgz文件和 /root/channels.xml文件可以删除。

关于php-7 - 在 php7.0 上安装 ncurses 扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39151234/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com