如何修复'postgres.h'文件找不到问题?

时间:2019-06-23 14:02:38

标签: c postgresql postgresql-11

我正在尝试使用C(使用xcode)为PostgreSQL写一个基本类型,并且我已经安装了PostgreSQL 11,但是似乎postgres.h不能简单地包含在文件中(“'postgres.h'找不到文件”)。

有人可以告诉我如何解决该问题吗?我可以在任意目录下编写代码,还是必须在PostgreSQL目录下编写代码?

也许问题应该是:如何安装postgres.h之类的头文件?

2 个答案:

答案 0 :(得分:11)

使用以下命令安装postgresql-server-dev软件包:

sudo apt install postgresql-server-dev-XX

将[XX]替换为您已经安装的postgresql版本:9.5、10、11、12

答案 1 :(得分:1)

您在这里有几种方法:

  • 使用诸如

    之类的命令自己搜索文件
    find / -name "postgres.h" -print
    

    这会告诉您(在Mac上是)文件位于:

    /usr/local/Cellar/postgresql/11.2_1/include/server/postgres.h
    

    ,然后将-I /usr/local/Cellar/postgresql/11.2_1/include/server选项添加到编译器。检查您的postgresql版本是否有其他版本。

  • 可能还有另一个用于数据库开发的软件包。搜索名为postgresql-dev或类似名称的软件包,然后安装它。使用以下命令搜索软件包后:

     brew search postgres 
    

     brew search psql
    

    在我的系统上没有显示任何匹配项。

编辑

我已经在FreeBSD系统上检查了该文件,该文件显示在

/usr/local/include/postgresql/server/postgres.h

因此,您可能必须改为#include <server/postgres.h>,并使用适当的-I标志(如上所述)