在将Postgres 10升级到version 11之后,通过使用pg_upgrade,我得到了以下错误:
无法加载库"$libdir/postgis-2.4":错误:无法加载库/usr/pgsql-11/lib/postgis-2.4.so“:/usr/pgsql-11/lib/postgis-2.4.so:未定义符号: geod_polygon_init
我使用的是CentOS 7和Postgis2.4。
我试过调查一下。
# nm -D /usr/pgsql-11/lib/postgis-2.4.so |grep geod_polygon_init
U geod_polygon_init该函数由共享库导出!我为什么要犯这个错误?
# ld -v /usr/pgsql-11/lib/postgis-2.4.so
GNU ld version 2.27-28.base.el7_5.1
ld: warning: cannot find entry symbol _start; not setting start address
/usr/pgsql-11/lib/postgis-2.4.so: undefined reference to `repalloc'
/usr/pgsql-11/lib/postgis-2.4.so: undefined reference to `hash_create'
/usr/pgsql-11/lib/postgis-2.4.so: undefined reference to `get_guc_variables'
/usr/pgsql-11/lib/postgis-2.4.so: undefined reference to `init_MultiFuncCall'
/usr/pgsql-11/lib/postgis-2.4.so: undefined reference to `SPI_exec'
/usr/pgsql-11/lib/postgis-2.4.so: undefined reference to `WinGetFuncArgInPartition'
/usr/pgsql-11/lib/postgis-2.4.so: undefined reference to `SPI_gettype'
/usr/pgsql-11/lib/postgis-2.4.so: undefined reference to `geod_polygon_addpoint'
/usr/pgsql-11/lib/postgis-2.4.so: undefined reference to `get_fn_expr_argtype'
/usr/pgsql-11/lib/postgis-2.4.so: undefined reference to `GetDatabaseEncoding'
/usr/pgsql-11/lib/postgis-2.4.so: undefined reference to `SPI_execute'
/usr/pgsql-11/lib/postgis-2.4.so: undefined reference to `CurrentMemoryContext'
/usr/pgsql-11/lib/postgis-2.4.so: undefined reference to `SPI_getvalue'
...相关问题:
发布于 2018-10-30 14:43:04
我下载了Postgis的源代码2.4.5并自己编译,现在它正常工作了。
我的postgis-2.4.so比yum提供的要大得多,2.4Mb对750Mb。从其他生成的库中也可以这样说。
发布于 2018-11-07 06:59:38
# ld -v /usr/pgsql-11/lib/postgis-2.4.so
GNU ld version 2.27-28.base.el7_5.1
ld: warning: cannot find entry symbol _start; not setting start address
/usr/pgsql-11/lib/postgis-2.4.so: undefined reference to `repalloc'
/usr/pgsql-11/lib/postgis-2.4.so: undefined reference to `hash_create'这其实不是个问题。你不能那样用,我想你想在那里使用ldd。它是一个共享对象,而不是一个可执行文件。没有_start (或带有-e的入口点),您就无法调用ld并生成可执行文件
无法加载库"$libdir/postgis-2.4":错误:无法加载库/usr/pgsql-11/lib/postgis-2.4.so“:/usr/pgsql-11/lib/postgis-2.4.so:未定义符号: geod_polygon_init
这个错误是因为我认为您是在链接到Proj4的一个版本,这个版本太旧了。如果有什么问题的话,那就是分发问题了。
https://dba.stackexchange.com/questions/221348
复制相似问题