【问题标题】:Trying to build nominatim 3.4.1 I get "fatal error: postgres.h: No such file or directory"尝试构建 nominatim 3.4.1 我得到“致命错误:postgres.h:没有这样的文件或目录”
【发布时间】:2020-08-15 07:24:37
【问题描述】:

我正在尝试在 Ubuntu 20.04 和 PostgreSQL 12 上安装 Nominatim 3.4.1,所以我按照 here 的官方说明进行操作,问题是当我执行 make 时,出现此错误:

[ 79%] 构建目标osm2pgsql_lib
[ 79%] 构建目标 osm2pgsql
[ 79%] 运行外部 makefile /usr/lib/postgresql/12/lib/pgxs/src/makefiles/pgxs.mk
/srv/nominatim/Nominatim-3.4.0/module/Makefile:11:警告:覆盖目标“安装”的配方
/usr/lib/postgresql/12/lib/pgxs/src/makefiles/pgxs.mk:241:警告:忽略目标“安装”的旧配方
/srv/nominatim/Nominatim-3.4.0/module/nominatim.c:1:10: 致命错误:postgres.h:没有这样的文件或目录
    1 | #include "postgres.h"
      | ^~~~~~~~~~~~~~~
编译终止。
make[3]: *** [: nominatim.o] 错误 1
make[2]: *** [module/CMakeFiles/nominatim_lib.dir/build.make:61: /srv/nominatim/Nominatim-3.4.0/module/dummy] 错误 2
make[1]: *** [CMakeFiles/Makefile2:1908: module/CMakeFiles/nominatim_lib.dir/all] 错误 2
make: *** [Makefile:141: all] 错误 2

nominatim.c 文件的第一行:

#include "postgres.h"
#include "fmgr.h"

我试过find / -name "postgres.h"find / -name "fmgr.h" 没有这样的文件。

我几乎可以肯定问题在于 PostgreSQL 12 删除了这些文件,更改了名称或类似的东西,而 Nominatim 3.1.4 不知道该更改。我不想降级 PostgreSQL 来解决这个问题,除非这是唯一可能的解决方案,我也不知道降级是否能解决问题。

【问题讨论】:

  • 这些头文件肯定存在于 PostgreSQL v12 中。也许您应该添加导致错误的确切 gcc 调用。
  • 我说的是开始构建后出现在屏幕上的所有内容
  • 好的,问题已更新

标签: postgresql nominatim postgresql-12


【解决方案1】:

在我的情况下,通过重新安装 postgres sudo apt install postgresql-server-dev-12 postgresql-12-postgis-3 \ postgresql-contrib-12 postgresql-12-postgis-3-scripts 解决了这个问题

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-28
    • 2015-06-24
    • 2020-01-24
    • 2017-05-09
    • 2021-05-15
    • 2014-10-31
    • 2022-01-11
    相关资源
    最近更新 更多