PostGIS 扩展未定义符号:GEOSCoordSeq_getXY
PostGIS extension undefined symbol: GEOSCoordSeq_getXY
我正在尝试在 centos7 上的 postgresql12 上创建 postgis 3.0 扩展(两者都是使用 yum 本机 rpms 安装的)
yum install postgis30_12.x86_64
但是我在使用 GEOS 时遇到了不同的错误。目前我得到的错误是
postgres=# create extension postgis;
ERROR: could not load library
"/usr/pgsql-12/lib/postgis-3.so": /usr/pgsql-12/lib/postgis-3.so:
undefined symbol: GEOSCoordSeq_getXY
geos-config --version
3.8.0
您使用的 PostGIS 二进制文件是使用与安装的版本不兼容的 GEOS 版本构建的。您必须安装不同的 GEOS 库或不同的 PostGIS。
通常情况下,这种不兼容应该通过使用不同的库版本变得明显。 GEOS 在这里似乎很草率。
我已经通过 运行 ldd libgeos_c.so.1 解决了这个问题,找到 postgresql12 正在使用哪个,并手动将其替换为安装 geos38 后出现的那个,创建扩展成功.
我正在尝试在 centos7 上的 postgresql12 上创建 postgis 3.0 扩展(两者都是使用 yum 本机 rpms 安装的)
yum install postgis30_12.x86_64
但是我在使用 GEOS 时遇到了不同的错误。目前我得到的错误是
postgres=# create extension postgis;
ERROR: could not load library "/usr/pgsql-12/lib/postgis-3.so": /usr/pgsql-12/lib/postgis-3.so: undefined symbol: GEOSCoordSeq_getXY
geos-config --version 3.8.0
您使用的 PostGIS 二进制文件是使用与安装的版本不兼容的 GEOS 版本构建的。您必须安装不同的 GEOS 库或不同的 PostGIS。
通常情况下,这种不兼容应该通过使用不同的库版本变得明显。 GEOS 在这里似乎很草率。
我已经通过 运行 ldd libgeos_c.so.1 解决了这个问题,找到 postgresql12 正在使用哪个,并手动将其替换为安装 geos38 后出现的那个,创建扩展成功.