Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql 示例.c:1:22:致命错误:postgres.h:没有这样的文件或目录_Postgresql_Compilation - Fatal编程技术网

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

Postgresql 示例.c:1:22:致命错误:postgres.h:没有这样的文件或目录,postgresql,compilation,Postgresql,Compilation,我试图在postgres中创建我自己的函数(使用C),我引用了以下文档: 对于编译-我指的是:第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

我试图在postgres中创建我自己的函数(使用C),我引用了以下文档:

对于编译-我指的是:第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文件。
我正在centos-7上使用postgres-12。

首先:如果您没有从源代码安装PostgreSQL,请确保安装了头文件,这些头文件位于
-devel
包中

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

cc-fpic-I/location/of/postgres/include-c example.c
要查找该位置,可以使用
pg_config

pg_配置--includedir

链接可执行文件时,有一个类似的
--libdir
选项显示库路径。

首先:如果没有从源代码安装PostgreSQL,请确保安装了头文件,这些头文件位于
-devel
包中

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

cc-fpic-I/location/of/postgres/include-c example.c
要查找该位置,可以使用
pg_config

pg_配置--includedir

在链接可执行文件时,有一个类似的
--libdir
选项来显示库路径。

对于ubuntu:
apt get-y安装postgresql-server-dev-13
之后
apt get-y安装postgresql-13
对于ubuntu:
apt get-y安装postgresql-server-dev-13
之后postgresql-13

您提到的第33.9.6节适用于远超过EOL的版本8.2。当前部分是。它有:
cc-fPIC-cfoo.c
。我不是一名C程序员,所以我不确定更改为
PIC
意味着什么。谢谢你的建议。但是,即使在更换外壳之后,它对我来说也不起作用。您提到的33.9.6节是针对版本8.2的,该版本远远超过了EOL。当前部分是。它有:
cc-fPIC-cfoo.c
。我不是一名C程序员,所以我不确定更改为
PIC
意味着什么。谢谢你的建议。但是,即使在更换外壳后,它对我也不起作用。非常感谢您提供我这些有用的信息。对我来说,这条路径是:/usr/include。我使用您提供的头文件路径的第一个命令运行编译命令,再次出现相同的错误。但是,当我转到此路径时:/usr/include。然后搜索postgres.h的头文件-我没有找到任何头文件。我在那里看到许多其他的.h头文件。我正在使用的软件包是否有任何问题?如果您使用的是PGDG软件包,则路径为
/usr/pgsql-12/include
。你从来没有说过你在用什么软件包。您也可能安装了多个PostgreSQL。如果不知道细节,很难给出更具体的建议。对不起,你能帮我确定我使用的是什么软件包吗。我知道如何检查版本,版本是12.4,这将是
rpm-qa | grep postgres
。但是看看我最新的答案;也许你只是忘了安装标题。非常感谢你为我提供了这些有用的信息。对我来说,这条路径是:/usr/include。我使用您提供的头文件路径的第一个命令运行编译命令,再次出现相同的错误。但是,当我转到此路径时:/usr/include。然后搜索postgres.h的头文件-我没有找到任何头文件。我在那里看到许多其他的.h头文件。我正在使用的软件包是否有任何问题?如果您使用的是PGDG软件包,则路径为
/usr/pgsql-12/include
。你从来没有说过你在用什么软件包。您也可能安装了多个PostgreSQL。如果不知道细节,很难给出更具体的建议。对不起,你能帮我确定我使用的是什么软件包吗。我知道如何检查版本,版本是12.4,这将是
rpm-qa | grep postgres
。但是看看我最新的答案;也许您只是忘记安装标题。