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

Ubuntu 20源码安装perl-5.14.2执行make test报Errno错误如何解决

问题产生原因

Perl 5.14.2是2011年发布的老旧版本,和Ubuntu 20.04自带的gcc 9.3.0、glibc 2.31版本存在兼容性问题。该版本perl的Errno扩展模块的符号生成逻辑,无法识别新系统头文件中errno宏的定义格式,最终导致没有任何errno符号被导出,触发测试失败终止。

解决方法

方案1:快速跳过测试安装(适用于对测试通过率无强制要求的场景)

make编译完成后无需执行make test,直接运行make install即可,该问题不会影响perl绝大多数核心功能的正常使用。

方案2:打兼容性补丁通过全量测试

  • 进入perl-5.14.2源码目录,打开ext/Errno/Errno_pm.PL文件
  • 找到文件中解析系统errno头文件的正则匹配段,将原有仅匹配旧版头文件格式的规则,调整为兼容gcc 9+生成的头文件格式:将匹配^#define\s+([A-Z0-9_]+)\s+[0-9]+的逻辑,新增对带括号、宏嵌套格式的errno定义的匹配支持
  • 执行make clean清理之前的编译缓存
  • 重新执行完整的编译安装流程:
cd perl-5.14.2
./Configure -des -Dprefix=$HOME/localperl
make
make test
make install

如果没有强依赖Perl 5.14.2的场景,建议直接使用Ubuntu官方源提供的perl包,或者编译安装更新的稳定版perl(如5.36+),无需额外适配即可兼容Ubuntu 20.04系统。

内容的提问来源于stack exchange,提问作者Zilmarij Iqbal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 13:39:03