【发布时间】: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