Postgresql 示例.c:1:22:致命错误:postgres.h:没有这样的文件或目录
我试图在postgres中创建我自己的函数(使用C),我引用了以下文档: 对于编译-我指的是:第33.9.6节。但是,当我运行以下命令时: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
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
。但是看看我最新的答案;也许您只是忘记安装标题。