树莓派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




