You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CentOS7源码安装PHP遇strtok_r编译报错,求源码安装解决方案

解决CentOS7源码编译PHP时strtok_r编译错误的方案

问题原因

CentOS7系统的glibc库已原生定义strtok_r函数,而PHP源码的php_reentrancy.h文件中重复声明了该函数,导致编译时符号冲突。

解决步骤

  • 编辑PHP源码目录下的头文件:
    vi /root/php-8.3.7/main/php_reentrancy.h
    
  • 定位到第98行的char *strtok_r(char *s, const char *delim, char **last);声明,将其注释或直接删除。
  • 保存文件后,重新执行make命令继续编译。

补充优化(可选)

若担心后续版本出现类似问题,可在该声明前添加条件编译判断,避免重复定义:

#ifndef HAVE_STRTOK_R
char *strtok_r(char *s, const char *delim, char **last);
#endif

CentOS7默认已定义HAVE_STRTOK_R宏,因此直接注释原声明即可解决当前问题。

内容的提问来源于stack exchange,提问作者Lau Ming Wei Bret

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 21:38:15