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

PostgreSQL源码安装执行make命令触发[all-src-recurse] Error 2报错求助

PostgreSQL源码安装make报错(spgtextproc.o Error 1)的解决办法

你在编译PostgreSQL 9.5.10时卡在了spgist模块的编译环节,这个错误通常和依赖缺失或者编译器版本不兼容有关——毕竟9.5是个已经停止维护的老旧版本了。先把你的报错信息贴出来方便参考:

make[4]: *** [spgtextproc.o] Error 1
make[4]: Leaving directory /usr/postgresql-9.5.10/src/backend/access/spgist' make[3]: *** [spgist-recursive] Error 2 make[3]: Leaving directory /usr/postgresql-9.5.10/src/backend/access'
make[2]: *** [access-recursive] Error 2
make[2]: Leaving directory /usr/postgresql-9.5.10/src/backend' make[1]: *** [all-backend-recurse] Error 2 make[1]: Leaving directory /usr/postgresql-9.5.10/src'
make: *** [all-src-recurse] Error 2

下面给你几个排查和解决的具体步骤:

1. 检查并安装完整的编译依赖

PostgreSQL编译需要一系列基础依赖包,spgist模块的编译尤其依赖libxml2相关库,先确保这些包都安装到位:

如果你用CentOS/RHEL系统:

yum install -y gcc gcc-c++ make zlib-devel readline-devel libxml2-devel libxslt-devel openssl-devel

如果你用Ubuntu/Debian系统:

apt-get update && apt-get install -y build-essential libreadline-dev zlib1g-dev libxml2-dev libxslt1-dev libssl-dev

2. 清理编译缓存后重新编译

之前的编译缓存可能已经损坏,先清理再重新执行配置和编译流程:

# 进入源码目录
cd /usr/postgresql-9.5.10
# 清理之前的编译残留文件
make clean
# 重新配置安装路径(--prefix可根据你的需求修改)
./configure --prefix=/usr/local/pgsql
# 重新执行编译
make

3. 解决编译器版本兼容问题

PostgreSQL 9.5对新版本gcc(比如gcc 8及以上)的支持很差,大概率会出现编译错误。你需要降级到兼容的编译器版本,比如gcc 4.8:

CentOS系统安装并指定gcc 4.8:

yum install -y gcc48 gcc48-c++
# 设置环境变量指定用gcc48编译
export CC=gcc48
export CXX=g++48
# 再次执行清理、配置、编译流程
make clean
./configure --prefix=/usr/local/pgsql
make

额外提醒:建议升级PostgreSQL版本

PostgreSQL 9.5在2021年就已经停止维护,不再提供任何安全更新和bug修复。如果条件允许,尽量升级到更稳定的新版本(比如14或15),不仅编译过程会更顺畅,后续使用的安全性和稳定性也更有保障。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:24:24