You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

树莓派4 Debian10 ARM64编译TimescaleDB源码报错求助

解决TimescaleDB源码编译时找不到pg_config.h的问题

你在ARM64架构的树莓派4(Debian10 + PostgreSQL12.4)上编译TimescaleDB时遇到的这个报错,本质是CMake无法定位到PostgreSQL的开发依赖文件,下面是一步步的解决办法:

1. 安装对应版本的PostgreSQL开发包

Debian系统里,PostgreSQL的运行时包和开发包是分离的,你需要安装适配12.4版本的开发包,才能获取pg_config.h这类编译必需的头文件:

sudo apt update
sudo apt install postgresql-server-dev-12

这个包会把所需的头文件放到/usr/include/postgresql/12/server/目录下,正常情况下CMake就能自动识别到路径了。

2. 手动指定PostgreSQL安装路径(如果第一步无效)

如果装了开发包还是报错,大概率是CMake没找到PostgreSQL的正确安装路径。你可以先定位pg_config工具的位置:

which pg_config

通常输出会是/usr/lib/postgresql/12/bin/pg_config,此时把这个路径的父级目录(也就是/usr/lib/postgresql/12)作为PG_PATH参数传给bootstrap命令:

./bootstrap -DUSE_OPENSSL=0 -DREGRESS_CHECKS=OFF -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DPG_PATH=/usr/lib/postgresql/12

3. 确认编译基础依赖已安装

确保你的树莓派已经具备编译所需的基础工具,如果还没装的话执行:

sudo apt install build-essential cmake

额外提示

如果你是手动编译安装的PostgreSQL(而非通过apt官方源安装),那需要保证编译PostgreSQL时没有跳过开发头文件的生成,或者直接把你手动安装的PG路径作为PG_PATH参数传入即可。

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

火山引擎 最新活动