我正在尝试在 postgres 中创建我自己的函数(使用 C),为此我引用了这个文档:http://www.linuxgazette.cz/139/peterson.html
对于编译 - 我指的是:第 33.9.6 节。但是,当我运行以下命令时:
cc -fpic -c example.c
我收到此错误:
example.c:1:22: fatal error: postgres.h: No such file or directory
#include "postgres.h"
^
compilation terminated.
我还安装了 postgresql-server-dev-all 软件包并尝试使用此链接中提供的解决方案:如何修复“postgres.h”文件未找到问题?
对我来说没有任何作用。请让我知道如何拥有 postgres.h 文件。 我在 centos -7 上使用 postgres-12。
对于 ubuntu:
apt-get -y install postgresql-server-dev-13
之后 apt-get -y install postgresql-13
。
或更笼统地说:
apt-get -y install postgresql-xx
apt-get -y install postgresql-server-dev-xx
其中
xx
是目标 PostgreSQL 版本。
首先:如果您没有从源代码安装 PostgreSQL,请确保安装了标头,这些标头位于
-devel
包中。
如果即使安装了头文件问题仍然存在,原因是您忘记告诉编译器在哪里查找头文件:
cc -fpic -I /location/of/postgres/include -c example.c
要找到该位置,您可以使用
pg_config
:
pg_config --includedir
有一个类似的
--libdir
选项可以在链接可执行文件时显示库路径。