c语言 - 如何修复"postgres.h"文件未找到的问题?



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

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

或者也许问题应该是:如何安装像postgres.h这样的头文件?

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

sudo apt install postgresql-server-dev-XX

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

这里有几种方法:

  • 自己搜索文件,使用一些命令,如

    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标志(如上所述(

我在Mac上为postgresql@13编译postgis 3.1.7时遇到了同样的问题。问题是在pg_config中指向服务器文件的链接是

/opt/

homebrew/opt/postgresql@13/include/server

当实际服务器文件夹位于

/opt/

homebrew/opt/postgresql@13/include/postgresql/server

所以我将整个"服务器"文件夹移到了"/include"中的一个目录中。和中提琴,邮政吉斯编译和安装完美。

相关内容

  • 没有找到相关文章

最新更新