example.c:1:22:致命错误:postgres.h:没有这样的文件或目录

问题描述 投票:0回答:2

我正在尝试在 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。

postgresql compilation
2个回答
2
投票

对于 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 版本。


1
投票

首先:如果您没有从源代码安装 PostgreSQL,请确保安装了标头,这些标头位于

-devel
包中。

如果即使安装了头文件问题仍然存在,原因是您忘记告诉编译器在哪里查找头文件:

cc -fpic -I /location/of/postgres/include -c example.c

要找到该位置,您可以使用

pg_config
:

pg_config --includedir

有一个类似的

--libdir
选项可以在链接可执行文件时显示库路径。

© www.soinside.com 2019 - 2024. All rights reserved.