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

使用make install安装Apache AGE时出现编译错误求助

问题原因与解决方案

核心原因:PostgreSQL与Apache AGE版本不兼容

你遇到的CatalogTupleInsert编译错误,本质是PostgreSQL版本和AGE分支不匹配:

  • PostgreSQL 12及更早版本中,CatalogTupleInsert函数返回值是void,不会返回OID;
  • PostgreSQL 13+版本中,该函数被修改为返回插入元组的OID;
  • 你当前使用的AGE分支(大概率是master分支)是针对PostgreSQL 13+开发的,代码里会试图接收该函数的返回值,而你的apt安装的是PG12.13,导致类型不匹配报错。

之前的postgres.h找不到错误,是因为apt安装的PostgreSQL开发包(postgresql-server-dev-12)的头文件默认在/usr/include/postgresql/12/server,而AGE默认路径没带版本号,你手动修改路径解决了头文件问题,但没解决核心的版本兼容问题。

解决方案

1. 切换到对应PG12的AGE分支

执行以下命令切换到AGE的PG12兼容分支,重新编译安装:

git checkout PG12
make clean
make PG_CONFIG=/usr/lib/postgresql/12/bin/pg_config install

2. 确保安装PostgreSQL开发依赖

如果还没装,先安装PG12的开发包,避免头文件问题:

sudo apt install postgresql-server-dev-12

使用PG_CONFIG参数指定PG12的配置文件路径,AGE会自动适配正确的头文件和库路径,无需手动修改目录。

3. 关于源码安装PG成功的原因

你源码安装PG能成功,是因为源码安装的PG版本(应该是13+)和你使用的AGE分支(master)版本匹配,CatalogTupleInsert的返回值符合AGE代码的预期,所以编译通过。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 07:55:20