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

编译PostgreSQL扩展提示'work_mem'未声明,询问对应定义头文件

问题解决办法

你遇到的编译报错如下:

error: ‘work_mem’ undeclared (first use in this function)
   17 |   Tuplestorestate *tupstore = tuplestore_begin_heap(true, false, work_mem);

work_mem 是 PostgreSQL 内置的全局配置(GUC)变量,它的定义位于 utils/guc.h 头文件中。你只需要在你的扩展源码头部添加对应头文件引入即可解决该报错:

#include "utils/guc.h"

额外注意事项:

  • PostgreSQL 12 及以上版本仅需要引入上述头文件即可正常使用 work_mem 变量,低于 12 的版本需要额外引入 utils/memutils.h 避免关联依赖报错
  • 编译扩展时需要确保 PGXS 配置正确,能够正常检索到安装的 PostgreSQL 服务端头文件目录,避免路径配置错误导致头文件引入不生效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 07:36:04